2016-10-22 4 views
-2

내가하고 싶은 일은 루프 내부에서 컴퓨터가 입력 된 숫자가 첫째 소수점이 아닌지 검사하고 동시에 숫자가 1 - 100 범위 내에 있는지 확인하고자하는 것입니다. 내 코드는 이제 10 진수가 아닌 숫자에 대한 첫 번째 함수가있는 것과 관련하여 작동합니다. 따라서 10 진수를 입력하면 정수가 추가 될 때까지 다른 숫자를 계속 추가하라는 오류 메시지가 표시되고 실행됩니다. 다음 부분으로. 그러나 내가 범위 밖의 숫자를 넣을 때 작동하지 않는 것처럼 보이지만 오류 메시지가 나타나지 않고 조건이 작동하지 않는 것 같습니다. 내가 알고 싶은 것은 어떻게이 두 부분을 얻는 지, 십진수와 범위 검사가 동시에 작동하도록하는 것입니다. 나는 정말로 코딩에 익숙하지 않기 때문에 어떤 설명도 쉽게 이해할 수 있습니다. 미리 감사드립니다.C# 루프에서 두 함수를 실행할 수 없습니까?

 string inputcost; 
     string inputmoney; 
     int validcost; 
     int validmoney; 
     int changereq; 

     Console.Write("Please Enter The Cost, In Pennies, Of The Item You Have Purchased: "); 
     inputcost = Console.ReadLine(); 
     bool result = int.TryParse(inputcost, out validcost); 

     while (!int.TryParse(inputcost, out validcost)) 
     { 

      if (result == true) 
      {      
       Console.Write("Valid Value"); 
      } 
      if (result == false) 
      { 
       Console.Write("You Cannot Enter Decimals. Please Enter A Valid Integer Value."); 
       Console.WriteLine(); 
       inputcost = Console.ReadLine(); 
      } 
      if (validcost < 100 && validcost > 1) 
      { 
       Console.Write("valid value"); 
      } 
      else 
      { 
       Console.Write("invalid value.please enter a number between 1      and 100 "); 
       Console.ReadLine(); 
      } 
     } 
+0

사용자가 정수로 변환 할 수없는 것을 입력 할 때만 while 루프를 입력합니다. 유효한 정수 인 경우 루프 내에서 코드를 실행하지 않습니다. – Steve

+2

와우! 같은 대답이 있습니까? [C# 같은 입력에 두 개의 루프를 넣고 실행하는 데 도움이 필요함] (http://stackoverflow.com/questions/40166017/c-sharp-need-help-trying-to-put-in-and-run- 2 루프 - 같은 - 입력) 당신이 무엇을 요구하고 있습니까? 대답은 링크에 있습니다 ... 무엇이 잘못 되었습니까? – JohnG

+0

같은 사람, 같은 질문, 새 계정 ... 오용처럼 보입니다. – HimBromBeere

답변

1

라인

while (!int.TryParse(inputcost, out validcost)) 

는 정수로 사용자 유형 뭔가를 변환 할 수없는 경우에만 while 루프를 입력 것을 의미한다. 유효한 정수 인 경우 while 루프 내의 코드에 도달하지 않으므로 유효한 범위에 대한 테스트가 실행되지 않습니다

대신 무한 루프 안에 모든 것을 넣고 프로그램을 중단 할 수있는 방법을 제공하십시오 (x

while (true) 
{ 
    Console.Write("Please Enter The Cost, In Pennies, Of The Item You Have Purchased: (type x to quit)"); 
    inputcost = Console.ReadLine(); 

    // Check if the user wants to stop executing the program 
    if(inputcost == "x") 
     break; 

    // Check if it is a valid integer 
    bool result = int.TryParse(inputcost, out validcost); 
    if (!result) 
    { 
     Console.WriteLine("You Cannot Enter Decimals (or strings). Please Enter A Valid Integer Value."); 
    } 
    else if (validcost > 100 || validcost < 1) 
    { 
     Console.WriteLine("invalid value.please enter a number between 1 and 100 "); 
    } 
    else 
    { 
     Console.WriteLine("Valid value"); 
     // other code block that works with the input number.... 
    } 
} 
0

Alternativly 루프, 뭔가 다른 조건을 사용) 종료하려면 그 정수 및 먼저 확인 후에는 범위에있는 경우 :

while (!int.TryParse(inputcost, out validcost)) || validCost < 1 || validCost > 100) 
{ 
    Console.WriteLine("Please enter an integer between 1 and 100"); 
    inputCost = Console.ReadLine(); 
} 

실행되어야하는 모든 코드를 때 입출력 현재 유효해야합니다 넘어서 루프가 아니라 안에입니다.

관련 문제