코드를 분해하면 문제가있는 곳을 알 수 있습니다.
변수를 초기화하십시오.
int data;
int sum = 0;
int count =0;
이 부분은 올바른 것 같습니다.
그런 다음 첫 번째 루프를 시작하여 사용자로부터 데이터를 가져옵니다.
do {
System.out.print("Please enter a number: ");
data = input.nextInt();
count++;
}
while (count < 10);
여기서 우리는 때마다 우리는 inputed 값 변수 '데이터'로 설정 루프를 반복하고, 카운터를 증가시킬 것을 알 수있다. 루프가 10 번 실행됩니다. 우리는 루프를 종료 시점에서
다음과 같이 변수가 설정 될 수 있습니다
data = `last number entered by the user`
sum = 0
count = 10
이제 우리는 마지막 루프 봐.
while (sum !=0)
break;
'sum'= 0이므로 루프를 입력하지 않습니다.
마지막으로 print 문이 있습니다.
System.out.println("The total is " + sum);
부터 당신이 inputed 데이터의 합계를 얻어야한다
다음
do {
System.out.print("Please enter a number: ");
data = input.nextInt();
sum = sum + data;
count++;
}
while (count < 10);
'합'= 0 당신이 당신의 첫번째 루프를 수정하면 The total is 0
을 말할 것이다 인쇄 된 선 ... .
'sum'이 0이 아니더라도 두 번째 루프가 제거되어야합니다. 루프에 들어가서 즉시 break 문을 치면 루프가 종료됩니다.
왜 무의미한 while 루프가 있고 for 루프를 사용하지 않는 이유는 무엇입니까? 또한 'sum'을 늘리지도 않으므로 무엇을 기대합니까? – Li357
어떻게 될 수 있습니까? 당신은 0의 초기 할당 후에'sum'의 값을 절대로 바꾸지 않을 것입니다. 또한 do-while 루프는 이상하게 보이고 분리됩니다. 'while'을'}'과 같은 줄에 넣으십시오. --- 그리고 while (sum! = 0) break; 루프가하고있는 일은 무엇이라고 생각합니까? 왜 그렇게 생각합니까? --- 마지막으로, 값을 가져 와서 '데이터'에 할당 한 후에 값을 무언가에 사용하고 싶지 않으십니까? – Andreas
어떤 이유에서 라인이 복사되지 않았기 때문에 "sum + = data;" 내 두 번째 성명 이상. 나는 "휴식;"을 포함시켜야했다. 왜냐하면 그것 없이는 내 프로그램이 끊임없이 입력 된 마지막 번호를 추가하기 때문입니다. –