有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何增加if语句中的变量以用于另一个语句?

我很难弄清楚如何通过if语句增加变量,并允许在不同的if语句中调用时注册变量。我目前正在做一项任务,模拟输入菜单。如图所示,用户输入特定命令,并在a、B或C上输入3个分数/值。一个单独的输入可以是F,在这个输入上,它应该显示每个公司,A,B,C有多少失败

            System.out.print("\nPlease enter a command:"); //Starts command prompt
            String menuPrompt = scanner.next(); //Takes next input and uses one of the following if statements

            if (menuPrompt.equals("a")) {
                double aNum1;
                double aNum2; //initializes a score inputs
                double aNum3;

                System.out.print("\nEnter number 1:");
                aNum1 = scanner.nextDouble();

                System.out.print("\nEnter number 2:");
                aNum2 = scanner.nextDouble(); //asking for inputs of test values of company a

                System.out.print("\nEnter number 3:");
                aNum3 = scanner.nextDouble();

                if(aNum1 < -6.0 || aNum1 > 12.3) {
                    aFailure = aFailure + 1;
                }
                if(aNum2 < -6.0 || aNum2 > 12.3) {
                    aFailure = aFailure + 1; //checks to see if inputted value is a failure, if so, failure ticks up 1.
                }
                if(aNum3 < -6.0 || aNum3 > 12.3) {
                    aFailure = aFailure + 1;
                }

还有两行类似的代码与此类似,只用于“b”和“c”。我在类的顶部初始化了aFailure、bFailure和cFailure,并将它们的值设置为0。在a、b、c提示的if语句之后,我有以下内容:

            } else if (menuPrompt.equals("f")) {

                System.out.print("\nAzuview Failures: " + aFailure);
                System.out.print("\nBublon Failures: " + bFailure); //Lists total failures for each company
                System.out.print("\nCryztal Failures: " + cFailure);

我不确定这些变量应该如何定义,或者我的格式是否正确,请帮助


共 (2) 个答案

  1. # 1 楼答案

    在循环中初始化变量时,每次循环再次运行时都会重新初始化该变量。当您在循环外初始化它时,即使在循环中,它也保持相同的变量。for循环背后的概念就是基于此。 在本例中,计数将在while循环的每次更新中递增 因此,计数将被设置为0,并增加1,直到达到9,然后退出循环

    var count = 0;
    while(count <10){
        count++;
    }
    

    但在这一次中,每一次都会循环。它将变量计数重新初始化为0,并将其递增为1。因此,每个循环都会创建一个新计数并将其设置为1

    while(true){
      var count =0;
      count++;
    }
    

    我对stack的第一个回应希望它能帮助您更好地理解这个概念:)

  2. # 2 楼答案

    我很确定我解决了这个问题,而不是在while循环内初始化,而是在while循环外初始化,它似乎解决了这个问题,任何解释背后概念的输入都会很棒