Java 클래스에 대한 과제를 도와 줄 수 있다면 크게 감사하겠습니다. 질문의 프롬프트는 다음과 같습니다.Java 루프를 종료하는 방법은 무엇입니까?
음수가 아닌 정수의 목록을 읽고 모든 정수의 가장 큰 정수, 가장 작은 정수 및 평균을 표시하는 프로그램을 작성하십시오. 사용자는 가장 큰 값, 가장 작은 값 및 평균값을 찾는 데 사용되지 않는 음의 센티널 값을 입력하여 입력의 끝을 나타냅니다. 평균은 분수 부분으로 계산되도록 double 유형의 값이어야합니다.
내 코드를 겪고있어 문제는 실행할 때 입력 한 첫 번째 값이 음수하지 않는 한, 루프가있는 경우는 반환 완료되지 않는다는 것입니다 :
최대 수는 입력했다 : 0 최소 입력 수 : 0 입력 한 숫자의 평균은 다음과 같습니다. NaN
도와주세요! 감사. - 샘
코드 : 코멘트에서
while (in>=0)
{
if (in>max){
max=in;
}
if (in<min){
min=in;
}
sum += in;
count++;
in = keyboard.nextInt();
//Check not needed here, handled by while loop
//if (in<0){
// break;
//}
}
편집 : 당신은 루프 당신 안에 다시 nextInt을 읽을 필요가
package blah;
import java.util.Scanner;
public class blahblah
{
public static void main(String[] args)
{
Scanner keyboard = new Scanner(System.in);
System.out.println ("Please enter a list of positive integers.");
System.out.println ("Please enter a negative integer when finished.");
int in = 0;
int max = 0;
int min = 0;
int sum = 0;
int count = 0;
in = keyboard.nextInt();
while (in>=0)
{
if (in > max) {
in = max;
}
if (in < min) {
in = min;
}
sum += in;
count++;
if (in < 0) {
break;
}
}
System.out.println("The maximum number entered was: " + max);
System.out.println("The minimum number entered was: " + min);
System.out.println("The average of the numbers entered was: " + (double)sum/count);
}
}
루프 안에 - – Randy
의 값을 절대로 변경하지 마십시오 또한'in = max;'를'max = in;'등으로 변경해야합니다. Assignment는 오른쪽 값을 변수에 넣습니다 왼쪽에. – iamnotmaynard