2011-06-12 290 views
0

因此,我正在做作業,而且我被困在一個地方。我必須編寫一個計算器,它需要2個數字和+, - ,*,/或%,然後它會做適當的數學運算。我得到了數字部分和錯誤檢查,但角色部分正在搞砸我。我試過IndexOf和IndexOfAny,它說沒有包含5個參數的重載方法。我收到了Contains的類似回覆。搜索特定字符的字符串

這是我的,請幫助!非常感謝您提供的任何幫助!

Console.Write("\r\nPlease enter either +, -, * or/to do the math.\r\n"); 
ReadModifier: 
     inputValue = Console.ReadLine(); 
     if (inputValue.IndexOfAny("+" , "-" , "*" , "/" , "%")) 
     { 
      modifier = Convert.ToChar(inputValue); 
      goto DoMath; 
     } 
     else 
     { 
      Console.Write("\r\nPlease enter either +, -, * or/to do the math.\r\n"); 
      goto ReadModifier; 
     } 
+1

請,不要」使用goto語句。反而將自己拍攝在食物上。 – 2011-06-12 22:28:53

+5

我定期在食物中拍攝自己。 – Amy 2011-06-12 22:36:24

+0

heheeh,不會修復錯字,更好的方法:) – 2011-06-12 22:39:34

回答

0
int index = inputValue.IndexOfAny(new char[] {'+' , '-' , '*' , '/' , '%'}); 
    if (index != -1) 
    { 
     modifier = inputValue[index]; 
     goto DoMath; 
    } 
+0

這工作完美!非常感謝!! – audiedoggie 2011-06-12 22:31:35

3

IndexOfAny採取的char [],不是char參數,可以使你寫:

inputValue.IndexOfAny(new char[] {'a', 'b', 'c'}) 
0

你可以做

if (new []{"+" , "-" , "*" , "/" , "%"}.Any(i => inputValue.IndexOf(i) >= 0)) 
{ 
    .... 
} 

if (inputValue.IndexOfAny(new[] {'+' , '-' , '*' , '/' , '%'}) >= 0) 
{ 
    .... 
}