Как увеличить переменные внутри оператора if для использования в другом операторе? - PullRequest
0 голосов
/ 07 февраля 2020

У меня возникают проблемы с выяснением, как увеличить переменную с помощью оператора if и разрешить ее регистрацию, если она вызывается в другом операторе if. В настоящее время я работаю над заданием, которое имитирует меню для ввода. Как показано, пользователь вводит указанную команду c, а для 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. После операторов if для приглашений a, b, c у меня есть это:

            } 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);

I я не уверен, как именно эти переменные должны быть определены, или если мое форматирование даже правильно, помогите?

Ответы [ 2 ]

1 голос
/ 07 февраля 2020

Когда вы инициализируете переменную в al oop, она переинициализируется каждый раз, когда l oop запускается снова. Когда вы инициализируете его за пределами l oop, оно останется неизменным даже в l oop. Концепция, лежащая в основе для l oop, основана на этом. В этом примере счет будет увеличиваться при каждом обновлении цикла while. Таким образом, счет будет установлен на 0 и будет увеличиваться на 1, пока не достигнет 9, когда выйдет из l oop

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

но в этом каждый раз будет l oop в нем. Он переинициализировал ваш счетчик переменных до 0 и увеличил его до 1. Таким образом, каждый l oop создается новый счет и устанавливается на 1

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

Мой первый ответ на стеке, надеюсь, он поможет вам понять концепцию a немного лучше :) 1007 *

0 голосов
/ 07 февраля 2020

Я вполне уверен, что я исправил это, вместо того, чтобы инициализировать в течение некоторого времени l oop, я инициализировал его вне того времени, пока l oop, и, казалось, это исправило, любой вклад в объяснение понятий, лежащих в основе этого, быть классным!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...