2013-03-13 5 views
0

Im이 정말 나쁩니다. C#의 기본 지식이 있습니다. 코드 조각이 있지만 문제가 있다고 디버거가 말합니다. http://puu.sh/2h2wV 코드가 여기에 있습니다. 이 난 사실 다른 코드를했다 probally 같은 쉬운 실수 메신저 미안하다, 내 옛날을 programm :(입력 문자열의 형식이 올바르지 않습니다.

Console.WriteLine("Sisesta esimene arv vahemikus 10-20"); 
      vastus1 = int.Parse(Console.ReadLine()); 
      Console.WriteLine("sisesta teine arv vahemikus 20-32"); 
      vastus2 = int.Parse(Console.ReadLine()); 
      Console.WriteLine("Vastus {0}", vastus2 - vastus1); 

      string tekst1 = Console.ReadLine(); 
      vastus3 = int.Parse(tekst1); <------ debugger says problem is here 
     } 
     while ((vastus1 < 1 || vastus2 < 12)); 

     if (vastus3 >= 3 && vastus3 >= 5) 
     { 
      Console.WriteLine("On Kevad"); 

       { 
        if (vastus3 >= 6 && vastus3 >= 8) 
        { 
         Console.WriteLine("on suvi"); 
        } 
       } 
       if (vastus3 >= 9 && vastus3 >= 11) 
       { 
        Console.WriteLine("on sügis"); 
       } 
       if (vastus3 >= 11 && vastus3 >= 2) 
       { 
        Console.WriteLine("on talv"); 
       } 
      } 

     } 
    } 
} 
+1

그 라인에있는 콘솔에 귀하의 의견은 무엇입니까? – Inisheer

+0

문제가있는 행 다음에 비교 연산자를 뒤집어서 사용해야합니다. – Sam

답변

4

음 오류는 무엇의 맥락에서 모든 정말

The input string was not in the right format 

을 말한다이었다 다시 말해, 이것은 입력 한 내용이 무엇이든 int.Parse에 직접 전달하는 콘솔은 int로 구문 분석 할 수 없습니다.

콘솔에 숫자가 아닌 내용이 입력되는 경우가있을 경우 int.TryParse을 사용하여 유효한지 확인할 수 있습니다.

int vastus3 = 0; 
while(!int.TryParse(Console.ReadLine(),out vastus3)) 
{ 
    Console.WriteLine("Invalid number, try again!"); 
} 
// here "vastus3" will have your integer 

오류가 발생한 현재 행이 정확하게 코드에 입력 될 수 있습니다.

+0

어디에 입력해야합니까? 왜냐하면 나는 정말로, 정말로 미안하다. 왜냐하면 영국이나 다른 어떤 사람들도 아니다. – user2123732

+0

@ user2123732 - 당신은 'vastus1'과'vastus2'에 무엇을 입력해야하는지에 대한 설명을 사용자에게 제공했다 - 왜 vastus3에 하나가 없는가? ? – Jamiec

+0

그래서 vastus1과 vastus2와 같은 vastus3을 추가합니까? – user2123732

0

자이 멕의 설명은 정확합니다. 찾고있는 정수가 항상 문자열 끝에있는 동일한 형식으로 나타나는 경우 하위 문자열을 사용하여 특정 문자를 얻은 다음 비교 검사를 수행 할 수 있습니다.

다음은 하위 문자열을 사용하여 문자열 끝에있는 문자를 제거하는 방법에 대한 예입니다.

Substring a string from the end of the string

그리고 MSDN

http://msdn.microsoft.com/en-us/library/system.string.substring%28v=vs.71%29.aspx

+0

코드가 잘못되어 변경되었습니다. – user2123732

+0

tekst1은 어디에 정의되어 있습니까? 문자와 숫자가 포함 된 문자열 인 경우 구문 분석하기 전에 정수 부분 만 추출해야합니다. 코드로 확실하지 않지만 문자열의 길이를 비교한다는 의미입니까? – PCSgtL

+0

나는 그저 거기에서 꺼낸 재료를 가지고 있습니다. (vastus3> = 6 && vastus3> = 8) – user2123732

관련 문제