2016-08-19 10 views
2

를 계산하면이 일이 너무 모호 있으면 알려 주시기 바랍니다 :자바 로직 오류 :/다른 카운터가 잘못

나는 컴파일 루프 실행을 가지고 있지만 내가하고 싶은대로 수행하지 않습니다 . 나는 루프가 실행되고 선택이 이루어진 횟수를 표시하는 동안 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

자바와 비슷한데 자바 태그를 추가하십시오. – 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

그때만 else 변수와 else 옵션에 아무런 언급이 없기 때문에 변수 choiceCount가 초기화되지 않을 수도 있다는 오류가 발생합니다. –

+0

응답 코드에서 초기화되지 않은 변수'choiceCount' 또는'choiceCount2'에 대한 오류가 표시되지 않습니다. 그것은 당신의 질문에있는 코드에서 변수가 선언 된 곳에서 값이 0으로 초기화된다는 점에서 다릅니다. 응답의 코드 첫 행은'choiceCount'를 초기화하여 값을 갖도록하는'int choiceCount = 0;을 읽습니다. '0'. –

+0

나는 내 선택을 바꾸지 않았다. 0에 –