2014-02-25 3 views
0

사용자가 입력 한 숫자의 평균을 제공하는 숫자를 입력 할 수있는 응용 프로그램을 만들었습니다. 사용자는 원하는만큼 번호를 입력 할 수 있습니다. 각 엔트리마다 현재 평균을 표시합니다.Sentinel 값을 사용하여 C# 응용 프로그램을 종료 할 수 없습니다.

응용 프로그램을 종료 할 수 없습니다. 코드에서 문제를 찾기 위해 도움이 필요합니다.

는 아래의 코드는 지금 수정됩니다 :

string input = ""; 
double noentered = 0; 
double total=0; 
double average = 0; 
do 
{ 
Console.Write("enter a number or Q to quit",input); 
input = Console.ReadLine(); 
if (input != "q" && input != "Q") 
{ 
noentered++; 
total += Convert.ToInt32(input); 
average = total/noentered; 
Console.WriteLine(" Total: {0} \t Number Entered: {1} \t Average:{2}", total, noentered,average); 
} 
} 
}while (input != "q" && input != "Q"); 
+0

디버거에서 단계별로 시도해보고 'q'를 입력하면 어떻게되는지 보셨습니까? – LB2

+0

예. 하지만 아무 것도 변수 "noentered"로 인쇄되고 있습니다. – user3341720

+0

"q"또는 "Q"를 입력하면 화면이 종료되고 "입력 문자열이 올바른 형식이 아닙니다"라는 메시지가 나타납니다. – user3341720

답변

1
int로 변환하기 전에 입력을 확인하기 위해 귀하의 경우 문장을 이동

:

 string input = ""; 
     double noentered = 0; 
     double total = 0; 
     double average = 0; 
     do 
     { 
      { 
       Console.Write("enter a number or Q to quit", input); 
       input = Console.ReadLine(); 
       if (input != "q" && input != "Q") 
       { 
        total += Convert.ToInt32(input); 
        average = total/noentered; 
        noentered++; 
        Console.WriteLine(" Total: {0} \t Number Entered: {1} \t Average:{2}", total, noentered, average); 
       } 


      } 
     } while (input != "q" && input != "Q"); 
+0

이 코드는 – user3341720

+0

@ user3341720, 그런 다음 답으로 표시해야합니다. :) – davidsbro

1
 do 
     { 
      Console.Write("enter a number or Q to quit", input); 
      input = Console.ReadLine(); 
      if (input != "q" && input != "Q") 
      { 
       noentered++; 
       total += Convert.ToInt32(input); 
       average = total/noentered; 
       Console.WriteLine(" Total: {0} \t Number Entered: {1} \t Average:{2}", total, noentered, average); 
      } 
     } while (input != "q" && input != "Q"); 

이 작동합니다. if 조건의 위치를 ​​확인하십시오. 입력 한 값은 읽은 후에 확인됩니다. 코드에서 한 번 통과 한 후에 값을 확인합니다. 또한 정확한 평균값을 얻기 위해 평균을 계산하기 전에 카운트를 증가시킬 수도 있습니다.

+0

이 코드가 작동합니다. – user3341720

관련 문제