Java 如何将for循环添加到if语句中?
在我下面的代码中,我不确定将其放入什么顺序才能正常工作 我首先希望它打印出来,让用户选择一个选项,然后如果他们选择1,它会询问他们的名字,并用循环等进行验证 当我输入一个名字时,它开始循环输入你的名字的问题,我不知道如何修复它 我是否需要向程序中添加更多语句?如果需要,我是否仍然可以使用if语句供用户选择选项Java 如何将for循环添加到if语句中?,java,if-statement,for-loop,Java,If Statement,For Loop,在我下面的代码中,我不确定将其放入什么顺序才能正常工作 我首先希望它打印出来,让用户选择一个选项,然后如果他们选择1,它会询问他们的名字,并用循环等进行验证 当我输入一个名字时,它开始循环输入你的名字的问题,我不知道如何修复它 我是否需要向程序中添加更多语句?如果需要,我是否仍然可以使用if语句供用户选择选项 import java.util.Scanner; public class username { public static void main(String[] args)
import java.util.Scanner;
public class username {
public static void main(String[] args) {
{
int UseLift;
int AuditReport;
int ExitLift;
int a;
UseLift = 1;
AuditReport = 2;
ExitLift = 3;
}
System.out.println("choose an option");
System.out.println("Uselift(1)");
System.out.println("see audit report(2)");
System.out.println("Exit Lift(3)");
Scanner d = new Scanner(System.in);
int a = d.nextInt();
Scanner kb = new Scanner(System.in);
// array containing usernames
String[] name = {"barry", "matty", "olly", "joey"}; // elements in array
if (a == 1) {
System.out.println(" Enter your name ");
}
String name1 = kb.nextLine();
boolean b = true;
int j = 0;// counter will start at 0
outerloop:
while (j < 3) {
System.out.println("Enter your name");
}
for (int i = 0; i < name.length; i++) {
if (name[i].equals(name1)) {
System.out.println("you are verified you may use the lift, calling lift ");
}
break;// to stop loop checking names
}
System.out.println("Username Invalid");
j++;
if (a == 2) {
System.out.println("");
}
if (a == 3) {
System.out.println(" Please Exit Lift ");
}
}
}
您的while循环如下:
while (j < 3) {
System.out.println("Enter your name");
}
将永远循环,因为j不是递增的j++。我相信你在某个时候错配了你的花括号。给你:
public static void main(String... args) {
String[] verifiedNames = { "barry", "matty", "olly", "joey" };
System.out.println("choose an option");
System.out.println("Uselift(1)");
System.out.println("see audit report(2)");
System.out.println("Exit Lift(3)");
Scanner scanner = new Scanner(System.in);
int choice = scanner.nextInt();
switch (choice) {
case 1:
scanner.nextLine(); // get '\n' symbol from previous input
int nameAttemptsLeft = 3;
while (nameAttemptsLeft-- > 0) {
System.out.println(" Enter your name ");
String name = scanner.nextLine();
if (Arrays.asList(verifiedNames).contains(name)) {
System.out.println("dear " + name + " you are verified " +
"you may use the lift, calling lift ");
break; // break out of loop
}
}
if (nameAttemptsLeft < 0) {
System.out.println("Username Invalid");
}
break;
case 2:
System.out.println("option 2");
break;
case 3:
System.out.println(" Please Exit Lift ");
break;
}
scanner.close();
}
你是否计划在生活中进一步使用java/进行编程?如果是这样,我建议花2小时阅读java语法概述,只需阅读oracle的官方教程即可。不,我没有很大帮助@kiruwkawell,如果你没有,我想解释如何更改代码是没有意义的,编写工作快照会更快。这会有帮助吗?@user3151959:kiruwka有点唐突,但你应该注意要点,即开发人员最有价值的技能是进行研究和找到解决方案的能力。如果您不理解Java语法,那么首先要做的就是研究它。如果没有这项技能以及何时应用这项技能的知识,即反省地知道自己不知道的东西,软件开发将非常困难。@user3151959我为您提供了下面的工作示例,它停止了循环,但现在它不会打印出条目是否有效@alyawn@user3151959欢迎我知道有人问questin编程时对学习如何编写代码一点也不感兴趣,这让人觉得很冒犯,但我想这一切都很正常。我仍然鼓励您只需浏览代码,看看您是否理解足够的逻辑,以便将来修改它。顺便说一句,正如您所看到的,不需要循环。一个问题很抱歉,您删除了用户名处尝试的密码,用户可以尝试3次@kiruwka@user3151959我用计数器更新了代码