猿问

我怎么没感觉有错误啊

//判断用户为奇偶数
  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("是奇数");
    }
   }
    
  }
  
  
 }

乐享天机
浏览 1169回答 3
3回答

慕勒0069038

 while(sc.hasNext()) //循环,当扫描到下一个元素的时候 这个有问题 你改成while(true) 都可以

onemoo

while 后面小括号中需要是 boolean 类型,当值为 true 时才会执行 while 循环体。所以那个 true 就是 boolean 类型值啊! 这样写 while 就会一直循环下去。如我前面解释的,while (sc.hasNext()) 会等待你输入了之后才会开始执行 while 循环体,所以在你输入之前,程序没有任何显示。而 while (true) 会直接开始执行循环体。这样即便你什么也不输入,至少也会看到打印出"请输入一个数:"通常,用 while 来循环处理 Scanner 时,小括号中表达式更多地使用的是 hasNext 系列。还有,Scanner 对象在使用结束后要记得调用 close() 来关闭。

onemoo

这个代码确实没有什么大错误。只是有一点:因为 while 中循环条件用的是 sc.hasNext(),所以在你输入之前,while 都会卡在这里等待你的输入。这样一来,只要你不输入,程序就会等待...
随时随地看视频慕课网APP

相关分类

Java
我要回答