【发布时间】:2026-02-07 04:55:01
【问题描述】:
我试图完成的程序需要从用户那里读取三个数字,然后将它们存储在变量num1、num2 和num3 中,以便它们可以在步骤 2 和 3 中使用。我遇到的问题是,当程序在用户输入他们的数字并尝试继续执行第 2 步或第 3 步后循环时,它说必须先完成第 1 步。
这是我现在的代码:
static Scanner console = new Scanner(System.in);
public static void main(String[] args) {
// TODO Auto-generated method stub
int num1;
int num2;
int num3;
int input;
do {
boolean opt1Done = false;
System.out.println("Select your next step");
System.out.println("1: Enter three numbers between 1 and 100.");
System.out.println("2: Order your number in ascending order");
System.out.println("3: Determine if the three inputs form a triangle");
System.out.println("4: Exit");
int answer = console.nextInt();
num1 = console.nextInt();
num2 = console.nextInt();
num3 = console.nextInt();
input = console.nextInt();
if (answer == 1) {
//do whatever for option 1
System.out.println("Enter a value for num1 between 1 and 100.");
System.out.println("Enter a value for num2 between 1 and 100.");
System.out.println("Enter a value for num3 between 1 and 100.");
opt1Done = true;
} else if (answer == 2) {
if (opt1Done) {
//...... do whatever to order the numbers
int[] arraynum;
arraynum = new int[3];
arraynum[0] = num1;
arraynum[1] = num2;
arraynum[2] = num3;
Arrays.sort(arraynum);
int i;
for (i = 0; i < arraynum.length; i++) {
System.out.println("num:" + arraynum[i]);
}
} else {
System.out.println("you must complete Step 1 before Step 2");
}
} else if (answer == 3) {
if (opt1Done) {
//... do whatever to determine if triangle or not
if (num1 + num2 > num3 && num1 + num3 > num2 && num2 + num3 > num1) {
System.out.print("TRIANGLE");
} else {
System.out.print("NO TRIANGLE");
}
} else {
System.out.println("you must complete Step 1 before Step 3");
}
if (answer == 4) {
System.exit(0);
}
}
} while (input != 4);
}
}
我需要添加另一个循环还是更改已有的循环?
【问题讨论】:
-
似乎是它的功课。是吗?
-
它用于编程课程的项目是的@MuhammadSuleman
-
你又破解了密码!编辑问题时要小心;)
-
opt1Done在每次迭代后被设置为 false,在你开始做之前移动boolean opt1Done = false;..while 循环
标签: java loops variables storing-data