.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)