2016-08-19 7 views
2

Пожалуйста, дайте мне знать, если это является слишком расплывчатым:Java Логическая ошибка запуска цикла: Если/еще счетчик неправильно рассчитывает

У меня есть цикл, который компилируется и работает, но он не выполняет, как хотелось бы , Я пытаюсь подсчитать время, когда выбор if/else выполняется до тех пор, пока цикл запускается, а затем отображает количество раз, когда этот выбор был сделан.

Выбор работы, цикл работает, но если я закодирую выбор, который не выбран, чтобы считаться равным 0, тогда, если другой выбор был выбран в следующий раз, вокруг накопленного счета первого выбора возвращается 0. Или оба варианта накапливаются.

У меня есть 4 вопроса if/else, но они аналогичным образом кодируются, чтобы действовать одинаково. Если я могу исправить, я могу исправить все остальное.

Здесь приведены некоторые элементы кода. (Я просил в прошлом не ставить так много кода, если только часть капризничает.)

int choiceCount; 
int choiceCount2; 

     while(quitYn == 1) 
    { 

    System.out.println("I am ready for the next participant."); 
    System.out.println(""); 
    System.out.println(""); 
    System.out.println("What would you rather have?"); 
    System.out.println("Enter 1 for Love or 2 for Money."); 
    surveyChoice = input.nextInt(); 

    if(surveyChoice == 1) 
    { 
     choice = FIRST_PICK; 
     message = "Love"; 
     choiceCount = ++ FIRST_CHOICE - 1; 
     choiceCount2 = ++ SECOND_CHOICE - 3; 
    } 
    else if(surveyChoice == 2) 
    { 
     choice = SECOND_PICK; 
     message = "Money"; 
     choiceCount = ++ FIRST_CHOICE - 1; 
     choiceCount2 = ++ SECOND_CHOICE - 2; 
    } 
    else 
    { 
     choice = "Broken dreams"; 
     message = "Broken dreams"; 
     choiceCount = ++ FIRST_CHOICE - 2; 
     choiceCount2 = ++ SECOND_CHOICE - 3; 
    } 
System.out.println(choiceCount + "Participants chose" + FIRST_PICK); 
    System.out.println(choiceCount2 + "Participants chose" + SECOND_PICK);   
+0

Пожалуйста, объясните этот код : 'choiceCount = ++ FIRST_CHOICE - 1;' Похоже, вы просто хотите 'choiceCount ++; ', но, возможно, я что-то упустил? – samgak

+0

Похоже на java, добавьте тег java. – kebs

+0

Если я поместил выбор в каждую часть, я получу подсчет даже для выбора, который не был выбран. Я пытаюсь понять, когда не считать и когда считать. –

ответ

2

Согласно пониманию ваши вопросы, вам нужно что-то вроде этого

int choiceCount = 0; 
int choiceCount2 = 0; 

while(quitYn == 1) 
{ 

System.out.println("I am ready for the next participant."); 
System.out.println(""); 
System.out.println(""); 
System.out.println("What would you rather have?"); 
System.out.println("Enter 1 for Love or 2 for Money."); 
surveyChoice = input.nextInt(); 

if(surveyChoice == 1) 
{ 
    choice = FIRST_PICK; 
    message = "Love"; 
    choiceCount++; 
} 
else if(surveyChoice == 2) 
{ 
    choice = SECOND_PICK; 
    message = "Money"; 
    choiceCount2++; 
} 
else 
{ 
    choice = "Broken dreams"; 
    message = "Broken dreams"; 

} 
} 
System.out.println(choiceCount + "Participants chose" + FIRST_PICK); 
System.out.println(choiceCount2 + "Participants chose" + SECOND_PICK); 
+0

Это может работать только тогда, когда я получаю сообщение об ошибке, что переменная choiceCount не может быть инициализирована, потому что в опциях else if и else нет упоминания об этом. –

+0

Вы не получите ошибку о неинициализированной переменной 'choiceCount' или' choiceCount2' с кодом из ответа. Он отличается от кода вашего вопроса тем, что, где объявляются переменные, они инициализируются, чтобы иметь значение 0. Первая строка кода в ответе читает 'int choiceCount = 0;', который инициализирует 'choiceCount', чтобы иметь значение '0'. –

+0

Я не менял свой выборКод до 0 –

 Смежные вопросы

  • Нет связанных вопросов^_^