.equals()在java中不';不行?
.equals()在java中不';不行?,java,Java,.equals()?由于某种原因,我的程序在循环部分出现了问题,而循环部分始终处于活动状态,即使字符串a=answer[r] import java.util.Scanner; public class security { static Scanner sc = new Scanner(System.in); public static void main(String[] args) { String q1[] = {"mother midd name","Father nam
.equals()?由于某种原因,我的程序在循环部分出现了问题,而循环部分始终处于活动状态,即使字符串a=answer[r]
import java.util.Scanner;
public class security {
static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
String q1[] = {"mother midd name","Father name","your pit name","First school name"};
String a[] = {"Zakia","Mohamed","Dog","Kaliop"};
AskQ(q1,a);
}
public static void AskQ(String q[],String answers[]) {
int r = (int) (Math.random() * q.length) + 1;
for (int i = 0; i < answers.length; i++) {
int c = 1;
System.out.print("please enter your " + q[r] + "?");
String a = sc.nextLine();
do {
c++;
System.out.print("Wrong! try again:");
a = sc.nextLine();
if(c == 2){
System.out.print("only one attempt lift! enter your pass:");
a = sc.nextLine();
c++;
}
if(c == 3){
System.exit(0);
}
c++;
} while (!a.equals(answers[r]));
System.out.println("you are in");
break;
}
}
}
import java.util.Scanner;
公共安全{
静态扫描仪sc=新扫描仪(System.in);
公共静态void main(字符串[]args){
字符串q1[]={“母亲的名字”、“父亲的名字”、“你的名字”、“第一个学校的名字”};
字符串a[]={“Zakia”、“Mohamed”、“Dog”、“Kaliop”};
AskQ(q1,a);
}
公共静态void AskQ(字符串q[],字符串答案[]){
int r=(int)(Math.random()*q.length)+1;
for(int i=0;i
据我所见,您的代码首先在for循环中将c设置为等于1,然后询问问题的答案,然后进入do while循环。在do-while循环中,它将c增加到2,然后输入一个问题的另一个答案,然后检查c是否等于2。由于c等于2,它要求回答另一个问题,然后将c增加到3。最后,它检查c是否等于3(实际值),并退出程序
我建议在do-while循环上使用while循环,因为在执行任何检查和错误处理之前,您似乎希望检查用户输入的答案是否正确。如果使用do while循环,则在它检查用户输入的答案是否正确之前,您正在执行错误处理
此外,我建议使用第二个if语句作为else-if语句 您的图像未发布。你说它不起作用是什么意思?也许发布一个代码示例…你真的不应该发布代码的图像。花点时间制作一个MCVE,然后在代码标记中发布该代码。请原谅,这是我第一次使用StackOverflow。您应该将代码复制并粘贴到问题中,而不是截图。您永远无法实现while条件,因为您的代码将始终执行系统。退出(0)