检查正数的输入

检查正数的输入

问题描述:

因此,对于我的编程分配,用户必须输入分数的数量,但我们必须检查输入并返回适当的错误。该数字必须是正数,并且程序需要区分错误并给出正确的响应并将其循环,直到输入正确的数字。我得到了错误检查部分,但我无法让程序继续下一部分。任何帮助,将不胜感激检查正数的输入

do { 
     System.out.println("Enter number of grades"); 
     if (input.hasNextInt()){ 
      numGrade = input.nextInt(); 

      if (numGrade < 0){ 
       System.out.println("Your number of grades needs to positive! Try again"); 
       count1++; 
       continue; 
      } 
     } 
     else{ 
      System.out.println("You did not enter a number! Try again"); 
      count1++; 
      input.next(); 
      continue; 
     } 


}while (count1 > 0); 
+0

分享你的错误堆栈跟踪 –

+0

@BalwinderSingh这个问题似乎是在流量和也不例外/错误是相关的逻辑错误。 –

+0

您无条件地在循环结束之前递增count1。如果您使用IDE来自动缩进代码,这将更加明显。 –

试试这个,

//use a boolean to tell the loop to continue or not 
boolean cont = true; 

do { 


    System.out.println("Enter number of grades"); 

    if (input.hasNextInt()){ 

     numGrade = input.nextInt(); 

     //I assume 0 is a valid response (not a negative int) 
     if (numGrade <= 0){ 
      System.out.println("Your number of grades needs to positive! Try again"); 
      continue; 
     } 
     else { 
      cont = false; 
      System.out.println("Your input is valid! Value entered is " + numGrade); 
     } 
    } 
    else { 
     System.out.println("You did not enter a number! Try again"); 
       input.next(); 
       continue; 
    } 
} 
while (cont);