2011-06-12 7 views
0

Alors je fais mes devoirs et je suis coincé à un endroit. Je dois écrire une calculatrice qui prend 2 nombres et +, -, *,/ou% et ensuite elle fera les maths appropriées. J'ai eu la partie des nombres et l'erreur vérifiant cela, mais la partie des caractères me déconcerte. J'ai essayé IndexOf et IndexOfAny et il dit qu'il n'y a aucune méthode de surcharge qui contient 5 arguments. J'ai eu une réponse similaire de Contains.Rechercher une chaîne pour un caractère spécifique

Voici ce que j'ai, s'il vous plaît aider! Merci beaucoup pour toute aide que vous pouvez offrir!

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

S'il vous plaît, Don' t utiliser l'instruction goto. Plutôt vous tirer dans la nourriture à la place. –

+5

Je me tire régulièrement dans la nourriture. – Amy

+0

heheeh, ne corrigera pas la faute de frappe, mieux de cette façon :) –

Répondre

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

cela a fonctionné parfaitement! Merci beaucoup!! – audiedoggie

3

IndexOfAny prend char [], carbonisent pas params, vous écrivez:

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

vous pouvez faire

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

ou

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