2014-09-21 5 views
0

이 난 Q를 누르면 프로그램 젊은이가 종료해야하지만 난 Q를 입력 할 경우에도 진행 할 때 어떻게해야 무엇 C#을 사용 vs2013에서 내 간단한 계산기 코드,이다 뭐죠 잘못된 접근 방식do {...} while() 루프는 어떻게 작동합니까?

class Program 
    { 
     public static void Main(string[] args) 
     { 
      float value1, value2, result= 0; 
      char op , cont; 
      Console.WriteLine("Simple Calculator"); 
     do { 
       Console.WriteLine("Please enter Q to Quit or continue "); 
       cont = Convert.ToChar(Console.ReadLine().ToUpper()); 
       Console.WriteLine("Please enter First value "); 
       value1 = Convert.ToInt32(Console.ReadLine()); 
       Console.WriteLine("Please enter Second value "); 
       value2 = Convert.ToInt32(Console.ReadLine()); 
       Console.WriteLine("Please enter operator "); 
       op = Convert.ToChar(Console.ReadLine()); 
       if (op == '+') 
       { 
        result = value1 + value2; 
        Console.WriteLine("Result is : {0}", result); 
       } 

      }  
     while(cont!='Q'); 
     Console.ReadKey(); 
     } 
    } 
+1

'cont'가 먼저 요구되므로 예 (1) 루프를 완료해야합니다. –

+2

'while' 조건은 변수가 값을 변경할 때마다'do' 내부의 블록이 완료 될 때만 평가됩니다. – Mephy

답변

0

당신 완전한 줄 (문자열)을 읽고 첫 번째 문자로 'Q'를 일찍 반환하여이를 수정할 수 있습니다.

그런 다음 문자열에서 문자를 검색 할 수 있습니다.

+0

그는 이미 그렇게합니다. –

2

즉시 퇴장을 원할 경우 은 즉시을 깨야합니다. 그 코드 후

if (cont == 'Q') 
    break; 

,

Console.WriteLine("Please enter Q to Quit or continue "); 
cont = Convert.ToChar(Console.ReadLine().ToUpper()); 
1

를 다음 줄을 넣어 들어 당신은 조건 나누기 무한 루프를 작성할 수 있습니다

할 - 동안은 하나의 루프를
while (true) 
{ 
    Console.WriteLine("Please enter Q to Quit or continue "); 
    cont = Convert.ToChar(Console.ReadLine().ToUpper()); 
    if (cont == 'Q') break; 
    Console.WriteLine("Please enter First value "); 
    value1 = Convert.ToInt32(Console.ReadLine()); 
    Console.WriteLine("Please enter Second value "); 
    value2 = Convert.ToInt32(Console.ReadLine()); 
    Console.WriteLine("Please enter operator "); 
    op = Convert.ToChar(Console.ReadLine()); 
    if (op == '+') 
    { 
    result = value1 + value2; 
    Console.WriteLine("Result is : {0}", result); 
    } 
} 
0

상태에 관계없이 시간 !!!!
그래서 종료를 들어, 바로

Console.WriteLine("Please enter Q to Quit or continue "); 

매우 혼란이를 WriteLine 호출에 계속 모든 문구의

0

첫째로 값을 읽은 후 추가 조건을 넣어. 예를 들어 계산을 계속하기 위해 내가 입력해야하는 것을 이해하지 못합니다.

두 번째로 사용자가 'Q'를 입력하더라도 루프를 통과합니다.

적어도 변수 cont을 입력 한 후에 확인해야하며 'Q'와 같으면 루프를 종료하십시오. 예를

while (true) 
{ 
    Console.WriteLine("Please enter Q to Quit or continue "); 
    cont = Convert.ToChar(Console.ReadLine().ToUpper()); 

    if (cont == 'Q') break; 

    //... 

를 들어 당신이 변수를 정의 고려 value1value2

float value1, value2, result= 0; 

수레으로 만 정수 valies.For 예를

value1 = Convert.ToInt32(Console.ReadLine()); 

내가 루프를 작성합니다를 입력 할 수 있습니다 다음과 같은 방법으로

while (true) 
{ 
    Console.WriteLine("Please enter an operator (+, -, *, /) or Q to quit: "); 
    op = Convert.ToChar(Console.ReadLine().ToUpper()); 

    if (op == 'Q') break; 
관련 문제