【发布时间】:2017-12-14 21:16:40
【问题描述】:
我目前正在为学校完成一项作业,我几乎完成了,但我只有一个大问题需要解决,然后才能添加最后一点。
我需要创建一个程序,提示您输入 1 或 2,然后它要求您输入三个单词/名称并将它们保存到一个数组中。
然后,根据您选择的是 1 还是 2,它会按字母顺序打印它们或翻转小写和大写字母。我还没有添加那部分,因为我正在尝试解决与第一个输入相关的问题。
当您输入 1 或 2 以外的数字时,系统会指示我显示错误消息并再次要求输入。我很确定我需要做的是让整个程序回到开头,因为再次复制/粘贴整个程序会很糟糕,哈哈
一个大问题可能是我使用 if/else 语句和 for 循环,而我可能需要将整个事情放在一个循环中?但是我不确定如果我将整个代码放入其中,我将使用什么条件来启动循环。我一定在这里遗漏了什么。
根据我现在的情况,即使您输入 1 或 2,它也会卡住说无效输入。
import java.util.Scanner;
public class IsabellaPiantoniLab5 {
public static void main (String[]args) {
//Ask for input
Scanner input = new Scanner(System.in);
System.out.print("Please choose either a number 1 or number 2.");
int numChoice = input.nextInt();
//if choice is 1 or 2
if (numChoice == 1 || numChoice == 2) {
System.out.println("Please enter three names: ");
String nameInput[] = new String[4];
//input loop
for (int i= 0; i < nameInput.length; i++) {
nameInput[i] = input.nextLine();
}
System.out.println("Values are:");
//display values if 1
if (numChoice == 1) {
for (int i=1; i<4; i++) {
System.out.println(nameInput[i]);
}
}
//display values if 2
else if (numChoice == 2) {
for (int i=1; i<4; i++) {
System.out.println(nameInput[i]);
}
}
}
//retry if invalid------i restart from the beginning if this happens
else if (numChoice != 1 || numChoice != 2) {
System.out.println("Invalid value. Please try again.");
//continue;
}
}
}
【问题讨论】:
-
不要将所有代码放在
main()中,而是尝试将功能位分解为它们自己的方法。以这种方式(重新)调用代码会更容易。 -
你需要像
while (userInput != 1 || 2) { userInput = askForUserInput() }这样的东西。 -
您写了“if (numChoice != 1 || numChoice != 2)”,但这始终是正确的。 numChoice 不是一个……或者不是两个。
标签: java loops for-loop while-loop do-while