最近我正在执行一个代码,该代码的构造之一是如果我输入一个特殊值,程序将转到第5步(跳过几行),然后回到第1步。
public static void doall(String[] args) throws FileNotFoundException {
Scanner input = new Scanner(System.in);
System.out.println("Enter VAL. -1 to end:");
int val, a, b, c, count = 0;
val = input.nextInt();
PrintWriter output=new PrintWriter("Sum.txt");
while (val != -1) {
System.out.println("Enter a,b,c:");
a = input.nextInt();
b = input.nextInt();
c = input.nextInt();
int max, facto, even;
max = findSum(a, b, c, output);
output.println("The three original integers are " + a + " " + b + " " + c + " \n"
+ max + " is the sum");
even = howmanyeven(max);
output.println("there is/are "+even+ " even number(s)\n");
while (a == 99) {
}
}
}
在while(a == 99)之间应该放置什么,所以如果我输入99,它将跳过findsum方法和evennumber方法,并返回到要求我输入a,b,c的开头。所有的答案表示赞赏。
答案 0 :(得分:0)
在扫描仪中使用nextint()可能会引起问题。 尝试使用nexline()并将其转换为int。 因此,如果您想全部与',' 在字符串上使用split。 例如,如果您可以在不同的行中输入数字
System.out.Print("enter a: ");
Int a = Int.Parse(input.nextLine());
System.out.Print("enter b: ");
Int b = Int.Parse(input.nextLine());
System.out.Print("enter c: ");
Int c = Int.Parse(input.nextLine());
答案 1 :(得分:0)
您需要先将整数变量初始化为0,因为它们在本地范围内,并且默认情况下不会初始化为0。 我看到您可能在此行尝试这样做:
int val, a, b, c, count = 0;
但是,在这种情况下,只有count
会取值为0,这样就不能在声明变量时初始化变量。
可能的是:
int val, a, b, c, count;
val = a = b = c = 0;
然后您可以执行以下操作:
do {
System.out.println("Enter a,b,c:");
a = input.nextInt();
b = input.nextInt();
c = input.nextInt();
} while(a == 99);
<rest of code here>
希望获得帮助。
已编辑:请确保还要为变量val
分配另一个值,否则循环将永远持续下去。