2017-03-09 2 views
-2

ich ein Programm ich die Erstellung der Zahl zum Beispiel eingegeben bewerten sollte ich eingegeben 5 die Funktion der Lage sein, die Zahl zurück, was bedeutet:Rückkehr eine Reihe seiner doppelten Wert

5 => 500 
4 => 400 
6 => 600 
10 => 1000 and so on. 

Das ist, was ich Bis jetzt gemacht.

public int NumberEval(int theNumber) 
{ 
    int theResult = 0; 
    switch (theNumber) 
    { 
     case 0: 
      theResult = 1; 
      break; 
     case 1: 
      theResult = 1; 
      break; 
     case 2: 
      theResult = 200; 
      break; 
     case 3: 
      theResult = 300; 
      break; 
     case 4: 
      theResult = 400; 
      break; 
     case 5: 
      theResult = 500; 
      break; 
     case 6: 
      theResult = 600; 
      break; 
     case 7: 
      theResult = 700; 
      break; 
     case 8: 
      theResult = 800; 
      break; 
     case 9: 
      theResult = 900; 
      break; 
     case 10: 
      theResult = 1000; 
      break; 
     case 11: 
      theResult = 1100; 
      break; 
     case 12: 
      theResult = 1200; 
      break; 
     case 13: 
      theResult = 1300; 
      break; 
     case 14: 
      theResult = 1400; 
      break; 
     case 15: 
      theResult = 1500; 
      break; 
     case 16: 
      theResult = 1600; 
      break; 
     case 17: 
      theResult = 1700; 
      break; 
     case 18: 
      theResult = 1800; 
      break; 
     case 19: 
      theResult = 1900; 
      break; 
     case 20: 
      theResult = 2000; 
      break; 
     default: 
      break; 
    } 
    return theResult; 
} 

Mein Problem ist, dass wenn ich 50 eingeben, dann sollte es seine 5000. Gibt es eine Möglichkeit, diese Methode Verknüpfung, weil ich mag nicht manuell jedes Element in der switch-Anweisung codieren? Oder sogar eine mathematische Gleichung dafür?

+5

Multiplizieren mit 100? – Steve

+1

... außer wenn 'theNumber == 1' oder' == 0', in diesem Fall gib einfach 1 zurück (es sei denn, das war ein Tippfehler in deiner Frage?). Für eine zukünftige Referenz sollte die erste Frage, die Sie sich stellen sollten, lauten: "Woher wusste ich, was ich zurückgeben möchte?" Das heißt, was hat dich dazu gebracht zu glauben, dass wenn du "theNumber == 9" heißt, du 900 zurückgeben solltest? Wenn Sie das getan hätten und "weil 9 * 100 = 900" entwickelt hätten, würde das einen Hinweis geben, wie Sie das lösen können, ohne jede Antwort hart zu codieren. – yshavit

+0

müssen Sie einen Schalter verwenden? –

Antwort

2

Warum nicht eine einfache Multiplikation mit 100 wie folgt aus:

public int NumberEval(int theNumber) 
{ 
    if(theNumber == 0 || theNumber == 1) 
     return 1; 
    else 
     return theNumber * 100; 
} 

hier ein working example für Sie. Sie können die Anweisungen wie folgt vereinfachen:

return theNumber == 0 || theNumber == 1 ? 1 : theNumber * 100; 
+0

Vielen Dank Herr, das ist, was ich suche – mark26

+0

@ mark26: Glücklich, Ihnen zu helfen Freund –

+1

@ mark26 Willkommen bei SO. Sie können auf das leere Häkchen klicken, um diese Antwort zu akzeptieren. –

3

Ist das nicht ein Muster mit Eingabe * 100? Ich denke, man könnte eine Methode schreiben, die die Eingabe akzeptiert und sie um 100 multipliziert. Aber es gibt etwas, um das man sich kümmern muss, wenn die Eingabe groß genug ist, um die ganzzahlige Genauigkeit zu überschreiten.

+0

hallo danke für ihren tipp aber wie kann ich es vermeiden. Ich bin neu in der Programmierung, so dass ich nicht wirklich viel über ganzzahlige Genauigkeit weiß. – mark26