2016-12-30 2 views
-5

사용자가 0을 입력 한 후 삽입 된 숫자의 평균을 인쇄 할 때까지 숫자를 묻는 프로그램을 만들어야한다. 하지만 첫 번째 입력의 평균은 얻을 수 있지만 후자의 입력의 평균은 얻을 수 없습니다.java - do-while 루프가 제대로 작동하지 않는다.

public static void main(String[] args) { 

     double a = 0; 
     int b = 0; 
    Scanner input = new Scanner(System.in); 
    do { 
     b++; 
     System.out.println("insert a number"); 
      a += input.nextDouble(); 

    } 
    while (a > 0);{ 

     } 

     System.out.println("the average is " + a/b); 

    } 

}

+1

while 문 뒤에 대괄호를 넣을까요? –

+1

변수에'a'와'b'보다는 의미있는 이름을 주면 버그를 쉽게 찾을 수 있습니다. – Misha

+0

은 첫 번째 (양수) 입력 이후에 1보다 작아지지 않습니다. 새 입력이 추가 되기만하면됩니다. – Minato

답변

1

당신은 당신의 while 검사의 입력이 없습니다. 직접 에 값을 추가하는 경우,

a+=input.nextDouble(); 

그래서 당신을 :

userInput = input.nextDouble(); 
a += userInput; 
} 

while(userInput > 0) 
.... 
0

당신은 에 직접 입력에서 값을 추가 : 당신은 userInput 말을, 다른 변수가 호출이 필요합니다 이 0, 사용자 입력 2, 3, -5 이하일 때만 사용자가 0을 입력하고 루프가 종료 될 때를 알 수 없음

관련 문제