Java 检查有效整数

Java 检查有效整数,java,integer,Java,Integer,我目前正在编写一个程序(java),要求用户提供他们的课程表,以及每个课程的学分。学分的唯一有效答案应该是1、2、3或4。我如何检查以确保这些是唯一有效的?如果他们输入了无效的数量,我希望它循环并提示他们回答完全相同的问题。这是我到目前为止所拥有的 //Jake Petersen import java.util.Scanner; public class test{ //I promise not to make all methods static in CS1 public sta

我目前正在编写一个程序(java),要求用户提供他们的课程表,以及每个课程的学分。学分的唯一有效答案应该是1、2、3或4。我如何检查以确保这些是唯一有效的?如果他们输入了无效的数量,我希望它循环并提示他们回答完全相同的问题。这是我到目前为止所拥有的

//Jake Petersen
import java.util.Scanner;
public class test{
  //I promise not to make all methods static in CS1
  public static void main(String[] args){
    Scanner scan = new Scanner(System.in);
    System.out.println("How many courses are you going to list?");
    int courses = Integer.parseInt(scan.nextLine());
    String courseArray[] = new String[courses];
    for (int i = 0; i < courseArray.length; i++){
      System.out.println("Please enter a course:");
      courseArray[i] = scan.nextLine();
    }
    int creditArray[] = new int[courses];
    for (int i = 0; i < creditArray.length; i++){
      System.out.println("Please enter how many credits " + courseArray[i] + " is:");
      creditArray[i] = scan.nextInt();
    }
    int sum = 0;
    for (int i : creditArray){
      sum += i;
    }
    for (int i = 0; i < courseArray.length; i++) {
      System.out.print(courseArray[i] + " is a " + creditArray[i] + " credit class. \n");
    }
    print(sum);
  }
  public static void print(int sum){
    if(sum >= 12 && sum <= 18){
      System.out.println("You are taking " + sum + " total credits, which makes you a full time student.");
    }else if(sum < 12){
      System.out.println("You are taking " + sum + " total credits, which makes you not a full time student.");
    }else{
      System.out.println("You are taking " + sum + " total credits, which means you are overloaded"); 
    }
  }
}
//杰克·彼得森
导入java.util.Scanner;
公开课考试{
//我保证不会让CS1中的所有方法都是静态的
公共静态void main(字符串[]args){
扫描仪扫描=新扫描仪(System.in);
System.out.println(“您将列出多少课程?”);
int courses=Integer.parseInt(scan.nextLine());
字符串courserray[]=新字符串[课程];
对于(int i=0;i如果(sum>=12&&sum你必须这样做

Scanner scan = new Scanner(System.in);
boolean a = true;
do{
   System.out.println("Insert your Value:");
   int value = scan.nextInt();
   if(value==1||......)a=false;
}while(a);

您可以将此部分插入到代码中。然后它会再次询问

您必须这样做

Scanner scan = new Scanner(System.in);
boolean a = true;
do{
   System.out.println("Insert your Value:");
   int value = scan.nextInt();
   if(value==1||......)a=false;
}while(a);

您可以将此部分插入到代码中。然后它会再次询问

作为替代方法,您可以简单地将增量从循环中拉出,如果输入有效,只需增量
i,如下所示:

for (int i = 0; i < creditArray.length;) {
    System.out.println("Please enter how many credits "+ courseArray[i] + " is:");
    int input = scan.nextInt();
    if (input >= 1 && input <= 4) {
        creditArray[i++] = input; 
    }
}
boolean isValid = true;
do{
   System.out.println("Please enter how many credits " + courseArray[i] + " is:");
   int buffer = scan.nextInt();
   if(buffer == 1|| buffer == 2||buffer == 3||buffer==4)
   {
      a=false;
   }
   }while(a);
for(int i=0;i如果(input>=1&&input作为替代方案,您可以简单地将增量从循环中拉出,如果输入有效,只需增量
i
,如下所示:

for (int i = 0; i < creditArray.length;) {
    System.out.println("Please enter how many credits "+ courseArray[i] + " is:");
    int input = scan.nextInt();
    if (input >= 1 && input <= 4) {
        creditArray[i++] = input; 
    }
}
boolean isValid = true;
do{
   System.out.println("Please enter how many credits " + courseArray[i] + " is:");
   int buffer = scan.nextInt();
   if(buffer == 1|| buffer == 2||buffer == 3||buffer==4)
   {
      a=false;
   }
   }while(a);
for(int i=0;i如果(input>=1&&input,您可以使用while循环和布尔变量来检查状态

    int creditArray[] = new int[courses];

    for (int i = 0; i < creditArray.length; i++) {
        boolean isValid = true;
        while(isValid)
        {
            System.out.println("Please enter how many credits " + courseArray[i] + " is:");
            int buffer =  scan.nextInt();               
            if(buffer == 1|| buffer == 2||buffer == 3||buffer==4)
            {
               isValid = false;
               creditArray[i] = buffer;
            }
        }

您可以使用while循环和布尔变量来检查状态

    int creditArray[] = new int[courses];

    for (int i = 0; i < creditArray.length; i++) {
        boolean isValid = true;
        while(isValid)
        {
            System.out.println("Please enter how many credits " + courseArray[i] + " is:");
            int buffer =  scan.nextInt();               
            if(buffer == 1|| buffer == 2||buffer == 3||buffer==4)
            {
               isValid = false;
               creditArray[i] = buffer;
            }
        }

这是我想到的,现在当你输入一个不正确的整数(如5)时,它会再次提示。然后我输入正确的整数(如2),然后我必须再次输入。下面是代码:@JakePetersen此代码有效。。这是你的完整代码,我想你可以修改它。Scanner scan=新的Scanner(System.in);boolean a=true;do{System.out.println(“插入值:”;int Value=scan.nextInt();if(Value==1 | | Value==2 | | Value==3 | | Value==4)a=false;}而(a)@JakePetersen请注意我的回答是正确的,否则主题就会结束,Thanksher是我想到的,现在当你输入错误的整数(如5)时,它会再次提示。然后我输入正确的整数(如2)这是代码:@JakePetersen这段代码有效..这是你的完整代码,我想你可以修改它。Scanner scan=new Scanner(System.in);boolean a=true;do{System.out.println(“插入你的值:”;int Value=scan.nextInt();if(value==1 | | value==2 | | value==3 | | value==4)a=false;}而(a);@JakePetersen请注意我的答案是正确的,否则主题就结束了,谢谢支持率较低的选民能解释这个答案的错误吗