【问题标题】:How do I increment variables within an if statement to be used in another statement?如何在 if 语句中增加变量以在另一个语句中使用?
【发布时间】:2020-05-23 21:47:16
【问题描述】:

我在弄清楚如何通过 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);

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

【问题讨论】:

    标签: java global-variables increment


    【解决方案1】:

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

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

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

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

    我对堆栈的第一个回复希望它可以帮助您更好地理解这个概念:)

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        最近更新 更多