2015-11-20 337 views
0

在Visual Studio 2015中製作的C#程序要求用戶從1-10中猜出一個數字,以告訴用戶如果猜測是正確的,則大於或小於必須猜測的值。運算符'>'和'<'不能應用於'string'和'string'類型的操作數C#

static void Main(string[] args) 
    { 
     string rightGuess = "7"; 

     Console.WriteLine("Guess the right number from 1-10: "); 
     string userGuess; 
     userGuess = Console.ReadLine(); 
     { 
      if (userGuess == rightGuess) 
       Console.WriteLine("You guessed right!"); 
      else if (userGuess > rightGuess) 
       Console.WriteLine("Wrong guess. Your guess was greater than the right guess."); 
      else (userGuess < rightGuess) 
       Console.WriteLine("Wrong guess. Your guess was lesser than the right guess."); 
     } 
    } 

下在Visual Studio 2015年錯誤的程序返回: errors

已經研究關於谷歌一個小時如何解決這個錯誤,但沒有一個解決方案的修復錯誤。

+1

您正在嘗試比較字符串。首先,用'int.TryParse'這樣的東西把用戶輸入轉換成一個整數。 –

回答

5

你需要比較整數,而不是字符串(達到那種比較),更改此行:

int rightGuess = 7; 

int userGuess = int.Parse(Console.ReadLine()); 

,它會工作。當然,你可以添加int.TryParse和檢查,如果輸入實際上是一個int

int userGuess; 

if(int.TryParse(Console.ReadLine(), out userGuess)) 
{ 
    ... do your logic 
} 
else 
{ 
    Console.WriteLine("Not a number"); 
} 
+0

感謝您使用此解決方案。它解決了這個問題。我並不知道這兩者都需要是整數而不是字符串。 – Mikex64

+1

@ Mikex64很樂意幫忙:) – wudzik

0

或者使用int.Parse /轉換的TryParse的字符串數值或使用String.CompareTo()。

+1

string.Compare在這種情況下不起作用:「17」是<「7」,例如 –

1

您應該使用正確的數據類型比較

int rightGuess = 7; 
Console.WriteLine("Guess the right number from 1-10: "); 
int userGuess; 
userGuess = int.Parse(Console.ReadLine()); 
{ 
    if (userGuess == rightGuess) 
     Console.WriteLine("You guessed right!"); 
    else if (userGuess > rightGuess) 
     Console.WriteLine("Wrong guess. Your guess was greater than the right guess."); 
    else (userGuess < rightGuess) 
     Console.WriteLine("Wrong guess. Your guess was lesser than the right guess."); 
} 

這樣想,當你說「莫希特」比「Mikex64」這有什麼意義更大。

但是2大於1纔有意義。因此我們可以像2> 1那樣編寫它,但不能寫出「Mohit」>「Mikex64」,因此您會收到此錯誤消息。

編輯:編輯代碼中的「大於」和「小於」操作數是準確的,因爲我第一次寫錯了他們的方式。

+1

現在我明白了字符串和int之間的區別。我沒有意識到字符串是比文本而不是數字,而int只是數字。雖然「Mohit」>「Mikex64」會在這種情況下工作,因爲在編程方面你比我大);謝謝! – Mikex64

+1

非常感謝你這樣的慷慨和親切的評論:)「Mohit」==「Mikex64」 –

相關問題