Verwendung von "else if" in C ++

8

Ich habe zwei Fragen - (I)

%Vor%

Code-Fragment-2

%Vor%

Sind die obigen zwei Codefragmente gleich?

(II) Wann werden sonst ifs (in C ++) verwendet?

    
SegFault 06.10.2012, 07:16
quelle

4 Antworten

9

Der einzige Unterschied besteht in Beispiel 1, Ihre Anweisung2 wird unabhängig von den von Ihnen geprüften Bedingungen ausgeführt. In Beispiel 2 wird Statement2 nur ausgeführt, wenn Ihre Bedingung if falsch ist. Ansonsten sind sie grundsätzlich gleich.

    
Adam Plocher 06.10.2012, 07:19
quelle
8

Nein, im ersten Fall führen Sie den else-Block nur dann aus, wenn <condition-statement> nicht verifiziert ist AND nur, wenn <condition-statement-2> verifiziert ist .

Im zweiten Fall führen Sie den Else-Block einfach aus, wenn <codition-statement> nicht verifiziert ist.

In diesem Fall sind Sie äquivalent bis Sie keine // Anweisungen-2 haben.

Über die Frage: wann wird das else if (in c ++) verwendet?

Wird grundsätzlich unter den gleichen Bedingungen aller anderen Sprachen verwendet, die dieses Konstrukt haben. else wird als Alternative zum verwandten if ausgeführt, wenn else-if als Alternative ausgeführt wird, aber mit einem 'angefügten' if , das verifiziert werden soll, andernfalls wird es nicht ausgeführt. Sie sind also nicht logisch gleichwertig.

    
obe6 06.10.2012 07:19
quelle
3

Die Syntax eines if ist wirklich if (Bedingung) Aussage;

Was das {} wirklich zulässt, erlaubt Ihnen, mehrere Anweisungen zusammenzufassen. In Ihrem zweiten Beispiel haben Sie nur eine Anweisung (das if) innerhalb Ihrer {} s, also sind beide Beispiele identisch, außer // Anweisungen-2 wird immer ausgeführt, wenn! = True

    
Avery3R 06.10.2012 07:20
quelle
1

In Ihrem ersten Codebeispiel wird Anweisung 2 bedingungslos ausgeführt. In der zweiten ist es bedingt. Nicht das Gleiche.

'else if' ist generell vorzuziehen, weil Sie immer mehr von ihnen einfügen oder anhängen können, oder ein 'else' anhängen, während Sie bei der anderen Form endlos mit geschweiften Klammern herumspielen müssen, um den gleichen Effekt zu erzielen und Sie riskieren, die Semantik zu ändern, wie Sie es in Ihrer zweiten Stichprobe auch getan haben.

    
EJP 06.10.2012 07:42
quelle

Tags und Links