为了账号安全,请及时绑定邮箱和手机立即绑定

我怎么没感觉有错误啊

我怎么没感觉有错误啊

乐享天机 2018-07-17 15:37:04
//判断用户为奇偶数  Scanner sc=new Scanner(System.in);      while(sc.hasNext()){//循环,当扫描到下一个元素的时候   System.out.println("请输入一个数:");   int s=sc.nextInt();   if(s==0){    break;       }else{    if(s%2==0){     System.out.println("是偶数");    }else{     System.out.println("是奇数");    }   }      }     }
查看完整描述

3 回答

已采纳
?
慕勒0069038

TA贡献143条经验 获得超39个赞

 while(sc.hasNext()) //循环,当扫描到下一个元素的时候 这个有问题 

你改成while(true) 都可以

查看完整回答
1 反对 回复 2018-07-17
?
onemoo

TA贡献883条经验 获得超454个赞

while 后面小括号中需要是 boolean 类型,当值为 true 时才会执行 while 循环体。所以那个 true 就是 boolean 类型值啊! 这样写 while 就会一直循环下去。

如我前面解释的,while (sc.hasNext()) 会等待你输入了之后才会开始执行 while 循环体,所以在你输入之前,程序没有任何显示。

而 while (true) 会直接开始执行循环体。这样即便你什么也不输入,至少也会看到打印出"请输入一个数:"


通常,用 while 来循环处理 Scanner 时,小括号中表达式更多地使用的是 hasNext 系列。

还有,Scanner 对象在使用结束后要记得调用 close() 来关闭。

查看完整回答
反对 回复 2018-07-18
?
onemoo

TA贡献883条经验 获得超454个赞

这个代码确实没有什么大错误。

只是有一点:因为 while 中循环条件用的是 sc.hasNext(),所以在你输入之前,while 都会卡在这里等待你的输入。这样一来,只要你不输入,程序就会等待...

查看完整回答
反对 回复 2018-07-17
  • 3 回答
  • 0 关注
  • 1168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信