2016-05-13 79 views
0

我有这样的代码,我想运行解决其需要三个用户输入的问题,我用这种扫描仪类:hasNext(扫描仪)保持循环

public static void main(String[] args) { 
    int M = 0; 
    int A = 0; 
    Scanner input = new Scanner(System.in); 
    System.out.println("Please, insert the normal dose in ml:"); 

    M = input.nextInt(); 

    System.out.println("Please, insert the set of experiments (3 integers per line, stop by 0 0 0):"); 
    try { 
     while (input.hasNextInt()) { 
      System.out.print(input.hasNext()); 
      int i = input.nextInt(); 
      A += i; 
      System.out.println(A); 
     } 
    } catch (Exception x) { 
     System.out.print(x.getMessage()); 
    } 

    System.out.println("Loop ended"); 

} 

奇怪的是, input.hasNextInt()在我插入三个值后卡住了或者什么东西,它似乎保持循环或者什么,即使控制台中没有输入,是否有人能为我提供帮助?

+1

'诠释计数= 0; while(count <3 && input.hasNextInt()){count ++;' –

回答

0

这是因为input.hasNextInt()一直等到整数值可用。如果通知了字母数字值,它将返回错误。

你必须定义另一种方式来打破while循环,也许有一个柜台,或者像你的消息称,检查3个值是否等于0