2017-02-03 5 views
-5

Ein Problem Ich habe gefragt, ein Programm zu erstellen, wo ein Benutzer einen ganzzahligen Wert (zwischen 1 und 4) eingeben und abhängig von der Eingabe eine bestimmte Ausgabe generiert werden soll.Wie könnte ich diese Auswahlstruktur nur mit if-Anweisungen umschreiben?

Es muss auch einen Fehler an den Benutzer zur Verfügung stellen, wenn der eingegebene Wert nicht zwischen 1 und 4.

ist ich es, wenn und sonst-Anweisungen schreiben verwaltet, aber ich bin zu wollen es möglich, wissen, ob um dies nur mit if-Anweisungen zu schreiben.

If and Else statement

+6

Es wäre besser, das Code-Snippet anstelle des Bildes hinzuzufügen. –

+0

'if (x) {a} else {b}' = 'if (x) {a} if (! X) {b} 'Nicht sehr nützlich. Außerdem wirst du downvoted, weil das Posten eines Screenshots anstelle des tatsächlichen Codes ziemlich faul ist. – Zong

+0

Ja, du kannst 'else'-Anweisungen vermeiden, indem du dieselben Prüfungen noch einmal machst. Aber es ist ineffizient. Oder Sie können eine Flag-Variable in jeder erfolgreichen Anweisung setzen, um zu erkennen, dass die Eingabe gut war. Dann überprüft die Fehlermeldung, dass dies der Fall ist. –

Antwort

1

es viele Möglichkeiten, um diese Katze zu Haut! Obwohl das Verwenden einer else-Anweisung nicht notwendig ist, scheint das Festlegen einer solchen Einschränkung unnötig zu sein und macht Code weniger lesbar und macht nichts wirklich. else entspricht if (! resp_1 == 1 ||...) Beachten Sie auch, dass Sie redundant in Ihren if-Anweisungen waren, die nach if resp_1 suchen war gleich 1 oder 2 oder 3 oder 4, bevor Sie wieder individuell prüfen und Ihren Text drucken.

mein Vorschlag, einen Schalter zu verwenden wäre, es ist lesbar und schnell

switch(resp_1){ 
    case(1): /*print*/ break; 
    case(2): /*print*/ break; 
    case(3): /*print*/ break; 
    case(4): /*print*/ break; 
    defualt: /*Print if not 1,2,3,4*/ 
} 
+0

Ja ich würde switch verwenden, allerdings fragt das Problem speziell nach if Anweisungen. Trotzdem danke! –

+0

Ich würde argumentieren, dass, wenn die Frage nach der Verwendung von if-Anweisungen fragt, die Sie verwenden sollten, folgen Sie einfach meinem Vorschlag, um die erste Überprüfung des Wertes von resp_1 zu entfernen und wenn Sie das else nicht möchten, verwenden Sie die Idee dahinter eine Negation der vorherigen if stents –

1

Wenn Sie Muss if Aussagen Verwendung nur zu implementieren, dann ist die Kette sie einfach alle.

if  (resp_1 == 1) { 
    // Print output for 1 
} else if (resp_1 == 2) { 
    // Print output for 2 
} else if (resp_1 == 3) { 
    // Print output for 3 
} else if (resp_1 == 4) { 
    // Print output for 4 
} else { 
    // Print error 
} 

Eine if-else-Anweisung führt (genau) eine Verzweigung aus. Und hier ist jeder andere Zweig eine andere if-else-Anweisung. Daher wird nur eine Verzweigung ausgeführt. entweder eine der Verzweigungen für eine gültige Eingabe oder die letzte catch-all-else-Verzweigung.

Und während es möglich ist, eine Flagge zu verwenden und dies ohne eine einzige else Klausel schreiben, IMO wird es weit weniger klar, was Sie vorhatten zu passieren. Wählen Sie beim Schreiben von Code immer die Option, die Ihre Absicht am besten erfasst. In zwei Wochen, wenn der Code eine Klärung erfordert, ist es umso einfacher, ihn zuerst zu erklären.

+0

Niemals über diese +1 gedacht. –

Verwandte Themen