java问题,这段代码怎么我觉得运行后,输入一个数字,下面莫名其妙多出来了几遍,为什么啊

作者&投稿:枕言 (若有异议请与网页底部的电邮联系)
javase,求一段简单代码,用户在控制台输入一个数,然后系统判断是否为数字,如果不为则提示重新输入,并且~

////////////////////////////
function isphone(phone){
var pr = /^1[3|5|8]([0-9]{1})([0-9]{8})$/;
return pr.test(phone)
}
/////////////////////////////

package test1;/** * 用户类 */public class User {private String name;private int age;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "User [name=" + name + ", age=" + age + "]";}}package test1;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/*** 主方法类*/
public class Test1 {
// 创建键盘输入对象
static Scanner input = new Scanner(System.in);
// 存储用户
static List userList = new ArrayList();

public static void main(String[] args) {
try {
// 初始化数据
User e1 = new User();
e1.setName("张三");
e1.setAge(18);
User e2 = new User();
e2.setName("李四");
e2.setAge(21);
userList.add(e1);
userList.add(e2);

while (true) {
System.out.println("=========菜单=========");
System.out.println("1.增加新用户;2.修改用户;3.删除用户;4.查找用户;5.退出)");
System.out.println("请键入对应的数字(1-5)进入相应的功能");
int handle = input.nextInt();
caseMenu(handle);
}
} catch (Exception e) {
throw new RuntimeException("请输入正确的内容!");
}
}

/*
* 选择菜单
*/
private static void caseMenu(int handle) {
try {
s: switch (handle) {
case 1:
// 新增用户
User user = new User();
System.err.print("请输入用户名:");
String name = input.next();

// 判断用户名是否已存在
f: for (User u : userList) {
if (u.getName().equals(name)) {
System.err.println("用户名已存在, 新增失败");
// 直接跳出switch
break s;
}
}

System.err.print("请输入年龄:");
int age = input.nextInt();
// 将新增用户插入List集合
user.setName(name);
user.setAge(age);
userList.add(user);
System.out.println("新增用户成功!");
// 查询所有用户
showAllUsers();
break;
case 2:
// 修改用户
System.err.print("请输入需要修改年龄的用户名:");
String uName = input.next();
// 判断用户名是否已存在
f: for (User u : userList) {
if (u.getName().equals(uName)) {
System.err.print(uName + "年龄修改为: ");
int uAge = input.nextInt();
u.setAge(uAge);
System.err.println("修改成功!");
showAllUsers();
// 直接跳出switch
break s;
}
}
System.err.println("用户名为:" + uName + "的用户不存在, 修改失败!");
break;
case 3:
// 删除用户
System.err.print("请输入要删除的用户名:");
String dName = input.next();
// 判断用户名是否已存在
f: for (User u : userList) {
if (u.getName().equals(dName)) {
System.err.print("确定要删除\"" + dName + "\"用户吗?(y/n)");
String isYes = input.next();
if ("y".equals(isYes)) {
userList.remove(u);
System.err.println("删除成功!");
} else {
System.err.println("删除操作取消..");
}
showAllUsers();
// 直接跳出switch
break s;
}
}
System.err.println("用户名为:" + dName + "的用户不存在, 删除失败!");
break;
case 4:
// 查找用户
System.err.print("请输入要查找的用户名:");
String sName = input.next();
// 判断用户名是否已存在
f: for (User u : userList) {
if (u.getName().equals(sName)) {
boolean flag = userList.contains(u);
System.err.println("用户名: " + u.getName() + "年龄: " + u.getAge());
// 直接跳出switch
break s;
}
}
System.err.println("用户名为:" + sName + "的用户不存在, 查询失败!");
break;
case 5:
// 系统退出
// 关闭键盘输入流
input.close();
System.exit(0);
break;
default:
break;
}
} catch (Exception e) {
throw new RuntimeException("请输入正确的内容!");
}
}

/*
* 查询所有用户
*/
private static void showAllUsers() {
for (User u : userList) {
System.out.println("姓名: " + u.getName() + "年龄: " + u.getAge());
}
}

}

因为这是一个do while的死循环, 每次你输入一个1到5的数字, 他就已经执行了对应的代码, 也就是输出“选择一”或者“选择二” 等等你的选择,
执行完了之后,马上会进行循环判断, 但是while后面括号中是一个true,也就是真,那么马上进行下一次循环, 继续输出菜单让你继续选择。也就是出现了你说的很多遍菜单。

因为你输入 2然后回车
其实是输入了 2\r\n
所以他会接受三个字符
所以第一次是提示你选择2 而第二三次会跳入default 提示你非法输入


玩AVA出现这个是什么原因照成的?
可能多是由病毒引起的,该病毒可以。普通模式下,还没有进入可以启动到安全模式,按F8键。当然也有可能是内存的原因,你可以尝试重新插拔内存,一般在这段代码中的内存损坏概率不大。五,0X00000050 硬件故障,硬盘的可能性很大。第一次尝试改变硬盘机无法正常启动,如果测试硬盘没有问题,请尝试内存,内存...

如何ava代码
很简单lt;color:r=255:g=0:b=0复制这段代码然后在其后面打字即可 lt;color:r=0:g=255:b=0文字 R=红色 G=绿色 B=蓝色 最大值为255 当三个都是255就是白色 物理问题不解释. 相反 为0就是黑色.

AVA的字体颜色代码怎么用
很简单<color:r=255:g=0:b=0>复制这段代码然后在其后面打字即可 <color:r=0:g=255:b=0>文字 R=红色 G=绿色 B=蓝色 最大值为255 当三个都是255就是白色 物理问题不解释. 相反 为0就是黑色.

AVA打不开解决方法
为了本次内测,我们已经准备了强大的服务器组和足够的带宽。因此理论上这种情况发生的可能性不是很大,如果确实发生,您可以尝试选择不同的服务器,有时会有不同的性能表现。同时,可以尝试在非高峰的时段进入游戏,以确定问题是出在服务器端,还是您的客户端方面(软件、网络、防火墙等方面)。还有你是...

Java选择题
在这段代码中有一个main方法,一个静态方法,main方法调用了静态方法。程序首先由main方法开始执行,创建了两个StringBuffer的对象,并分别赋值为A B(第3,4行)然后调用了这个类的静态方法operate(第5行)。operate方法需要2个参数,这个时候传入的a和b已经有初始值了,分别是A,B。这时程序运行到第...

如何评价电影《机械姬》
Nathan对Ava留了一手(录像机,这段是最出彩的,也是我完全没有想到的),Ava对Caleb留了一手(岂止一手),Caleb对Nathan留了一手(他不应该能这么轻易破译密码啊,不合理)。但是,Caleb没有给Ava留一手,Nathan也没有给Caleb留一手,所以这整个结构就断裂了。故事充分暴露了愚蠢的人类的弱点。Nathan刚愎...

ava的大方向是什么
ava的大方向就是j2eej2ee不仅仅是socket编程,具体包括13中核心技术J2EE的核心API与组J2EE平台由一整套服务(Services)、应用程序接口(APIs)和协议构成,它对开发基于Web的多层应用提供了功能支持,下面对J2EE中的13种技术规范进行简单的描述(限于篇幅,这里只能进行简单的描述):方法\/步骤 1.JDBC(Java...

AVA战地之王打开游戏后弹出这个框框,然后被强行关闭,以前一直玩到好好...
应该是系统繁忙,从提示框上看,配置的确没啥问题,由于这段时间很多玩家利用AVA的漏洞,非法刷取道具,结果现在官方不停地在检测、排查,删除非法道具,结果导致系统繁忙,出现卡死、掉线,这是最近地普遍现象。

为什么我玩AVA的时候,会隔一段时间屏幕会卡一下?
应该是你的显卡不能满足AVA这款游戏流畅游戏的最低标准也就是fps低。建议降低画质降低分辨率试试

AVA选择大区登录游戏一段动画结束后 显示正在连接,然后就出现一个结束...
这表示游戏无法连接网络服务器,你可以检查一下网络是否稳定。如果确定网络没问题的话试试下载最新版本来安装。因为如果游戏版本有问题的话也会造成这样的情况,比如你有一段时间没在这台机器登陆了,错过了某个版本的补丁。

普格县17256818780: java问题,这段代码怎么我觉得运行后,输入一个数字,下面莫名其妙多出来了几遍,为什么啊 -
祢莘凯济: 因为这是一个do while的死循环, 每次你输入一个1到5的数字, 他就已经执行了对应的代码, 也就是输出“选择一”或者“选择二” 等等你的选择, 执行完了之后,马上会进行循环判断, 但是while后面括号中是一个true,也就是真,那么马上进行下一次循环, 继续输出菜单让你继续选择.也就是出现了你说的很多遍菜单.

普格县17256818780: JAVA 下面这段代码是我想试验主线程和分支线程是按什么顺序运行,为什么我运行的感觉他们不会跳来跳去
祢莘凯济: 你 youshou.sleep(2222); 有什么意图? 2222是多长时间你知道么? zuoshou.start(); 左手全部运行完也才 for (int i = 0; i &lt; 3; i++) { System.out.println("左手线程飘过"); } 循环了3次而已,即便是第一代cpu 在2222这段时间内也把这三次循环搞定了,你当然看不到 线程之间竞争资源互相间隔运行的场景了. ps:线程分时运行这种理论从微观上硬件执行命令来说是模糊的(你可以理解为混沌),如同理论一样,它不固定,特别在多核的环境中.你可以再改造一下你的代码来观察多线程运行.

普格县17256818780: java问题,感觉这几行代码没什么问题呀,但是运行的时候会出现错误,就是红色波浪线那行,提示的是M -
祢莘凯济: 应该没错啊,你不要用手输入,点出来..

普格县17256818780: 求java大神帮忙看看,为什么这段代码有错误运行不了呢? -
祢莘凯济: try{String s=intemp readLine();}catch(IOException e){少个点String s=intemp.readLine();这样就好了啊..

普格县17256818780: 这段java代码的运行原理. -
祢莘凯济: public class chuandi_2 {int x;//第一步:. chuandi_2 声明了变脸int x,然后进main函数调用 public static void main(String [] agev) {chuandi_2 obj1 = new chuandi_2();//第二步:.new obj1obj1.x=5; //第三步:obj.x赋值为5change(obj1);...

普格县17256818780: 这段java代码有什么问题吗?为什么多线程并发执行后结果不是期望的100 -
祢莘凯济: 线程是并发执行的,先后顺序是不能被保证的,也就是i=10的时候启动的线程并不一定比i=11的时候启动的线程先执行到ai.getAndIncrement()这条语句;而且你最后执行输出语句的时候可能有一些线程还没有执行完成. 最重要的原因应该是后者,输出语句之前可以先让main线程sleep 1000ms,然后再看输出结果应该就是100了.

普格县17256818780: java代码运行问题,为什么这段代码运行之后我填写座机号码区号后面不是7位也显示注册成功,求解!!!! -
祢莘凯济: if(splitphone[0].length()!=4 && splitphone[1].length()!=7) && 改成||

普格县17256818780: java问题,我单独起一个项目运行一段代码,没有问题,为什么我放在我的另一个完整的项目中就会出现这个问题. -
祢莘凯济: NoSuchMethodError 没有找到方法,最简单的就是方法路径错了.或者是由于多个版本的class存在.某个java编译成class后,放到classes下面,然后lib目录下,也有这个class所在的jar包,这样就导致classpath实际上有两个相同的class.通过方法class.getProtectionDomain()找到class所在的jar包,然后删除

普格县17256818780: java程序运行出了这样问题,这是咋回事? -
祢莘凯济: 提示大意是你的代码文件里面有的字符在GBK字符集没有,导致无法保存.解决办法有两个:1、把你这个文件转变成UTF-8的字符编码方式2、找出那个没法映射字符,把他删除或者用其它字符代替.我个人建议整个项目最好全部采用UTF-8编码方式.

普格县17256818780: java初学者,请问这段代码有什么问题 -
祢莘凯济: 提示说有if,但是没有else If(y%x==0) System.out.println("可以整除"); else System.out.println("不能整除");这样的格式才不会 显示 if 和 else 断开 同一行的模式, 加不加花括号无所谓

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网