고수님들은 한 눈에 보면 어떤 프로그래밍인지 척 아시겠지만,
또 제가 워낙 못적어서 모르실까봐 설명드립니다.
Enter a number (or Q to quit): 라는 질문이 loop로 계속 나오고,
숫자가 아닌 Q를 치면 입력을 종료하고 결과를 보여줍니다.
결과는 합계, 평균, 최댓값, 최솟값입니다.
/*To prevent syntax error*/ 쓴 곳을 제거하면 syntax 에러가 뜹니다.
어떻게 제거해야 할 지 모르겠습니다.
이대로 할 경우 Q를 입력하지 않아도 숫자 하나만 입력하면 input을 종료하고 바로 결과가 떠버럽니다.
어떻게 수정하는게 좋을까요?
public class compute
{
public static void main(String[] args)
{
int x, sum, ct, min, max;
sum=0;
ct=0;
min=0;/*To prevent syntax error*/
max=0;/*To prevent syntax error*/
String Quit;
Quit="hello";/*To prevent syntax error*/
Scanner kb=new Scanner(System.in);
do{
System.out.print("Enter a number (or Q to quit): ");
try
{
x=kb.nextInt();
if(ct==0)
{
min=x;
max=x;
}
else if(min>x)
min=x;
else if(max<x)
max=x;
sum=sum+x;
ct++;
}catch(NumberFormatException e){
Quit=kb.nextLine();
}
}while(Quit.equals("Q"));
System.out.println("The sum of the number is : "+sum);
System.out.println("The average is : "+(sum/ct));
System.out.println("The minimum value was : "+min);
System.out.println("The maximum value was : "+max);
}
}
Quit값을 지워봐요
그럼 어떻게 Integer 예상값이 Q값을 인식해서 입력을 멈추게 할 수 있죠?
while(!Quit.equals(\"Q\"));
catch(InputMismatchException e)
이거 두개 수정하믄 될꺼임여
여기서 틀린 핵심이 while문은 참일때까지 돈다는거 첨부터 Quit.equals(\"Q\")가 false 니까 뭔수를 넣던지 한번돌고 끝임여
조공때문에 알려준건 아님
아 내가 알려주고싶었는데 조공 헠헠 [핡]
ㅇㅇ님 알려주신게 정말 딱 맞네요. 감사합니다. 하나 더 질문드리자면 /*To prevent syntax error*/ 없애기 위해서는 code를 어떻게 수정하는게 좋을까요? 처음부터 c==0이 아닐 경우가 나오면 min, max값이 정의되지 않아서 생기는 문제인 것 같은데 그렇다고 쓸모없는 코드 넣으면 혹시 교수가 태클걸지는 않을까 싶어서요.
짤줍 감사
돈보던 조공인가 ㅋㅋㅋ