Als ich das Programm eines Neulings überprüfte, der als Programmierer sein Debüt als Mitglied der Gesellschaft gab, sprach ich kurz über den ternären Operator, also werde ich es zusammenfassen. Zusammenfassend ist der ternäre Operator keine Abkürzung für die if-Anweisung.
Postscript 15.10.2015 Hier wird der "bedingte Operator" als "ternärer Operator" geschrieben. Der ternäre Operator ist ein allgemeiner Begriff für Operatoren mit drei Elementen, wie der Name schon sagt, und bezieht sich nicht direkt auf die Operation "?:". Daher war es genauer, ihn hier als "bedingten Operator" zu beschreiben. Vielen Dank bsdhack.
Es ist eine Operation, die den zurückzugebenden Wert abhängig von den Bedingungen umschalten kann.
Format
[Bedingungen] ? [Rückgabewert bei TRUE] : [Rückgabewert für FALSE] ;
Stichprobe
final int MAX = 100;
int ans = 120;
int result = MAX < ans? MAX : ans;
//Ergebnis ist 100
Ein Beispiel ist der Prozess der Rückgabe von 100, wenn ans 100 oder mehr ist, und der Rückgabe von ans, wie es ist, wenn es 100 oder weniger ist.
Im obigen Beispiel gab es einen solchen Quellcode.
if Anweisungsbeispiel
int ans = 120;
int result;
if(MAX < ans){
result = MAX;
}else{
result = ans;
}
HM. Ich fühle mich genauso wie der Prozess. Ich bin eher der Meinung, dass ein solcher Quellcode häufig als Erklärung für den ternären Operator ausgegeben wird. Warum also nicht den ternären Operator verwenden? Als ich das hörte, sagte er: "Mir wurde beigebracht, den ternären Operator nicht zu verwenden, weil es schwer zu verstehen ist." Es ist richtig, dass einige Unternehmen und Projekte Regeln haben, die ternäre Betreiber verbieten.
Nein, es wäre anders, etwas mit if zu verzweigen. Überlegen wir uns also, wie man es richtig verwendet.
Wenn Sie überlegen, ob Anweisungen und ternäre Operatoren vorhanden sind, müssen Sie zunächst den Unterschied zwischen "Anweisungen" und "Operatoren" feststellen. Da die if-Anweisung eine Steuerungssyntax ist, verzweigt sie den Prozess. Andererseits dient der ternäre Operator nicht zum Verzweigen, da er als "Operator" bezeichnet wird.
Ich denke, dass es klar sein wird, wie man es richtig benutzt, wenn man sich dessen bewusst ist.
Zu den Operatoren gehören "+" und "<=". Wenn Sie noch einmal über die Bedeutung nachdenken
ans = [Gegenstand 1] + [Punkt 2]
In diesem Fall hat der Operator "+" die Funktion, die Summe der numerischen Werte von Punkt 1 und Punkt 2 zurückzugeben.
Der ternäre Operator ist also
ans = (Bedingungen) ? [Gegenstand 1] : [Punkt 2]
Es wird entweder Artikel 1 oder Artikel 2 zurückgegeben, und welcher Artikel zurückgegeben wird, hängt von den Bedingungen ab. Es wird die Funktion.
Die if-Anweisung wird verwendet, um den Prozess zu verzweigen. Der ternäre Operator wird verwendet, wenn Sie einen von zwei (oder mehr) auswählen.
Im obigen Beispiel ist der ternäre Operator geeignet, da es sich um einen Prozess zum Auswählen von "MAX" oder "as is" handelt. Daher ist er einfacher und kürzer als das Schreiben mit einer if-Anweisung. Im Gegenteil, die Verwendung des ternären Operators, weil ich ihn kurz schreiben möchte, ist ein Chaos.
Es wird gesagt, dass "ternäre Operatoren nicht lesbar sind", und ich denke, der Grund, warum sie nicht gemocht werden, ist, dass das schlechte Muster der Verwendung von ternären Operatoren anstelle von if-Anweisungen weit verbreitet ist. Wenn Sie "process" in den ternären Operator schreiben, wird Ihnen mitgeteilt, dass die if-Anweisung in Ordnung ist.
In diesem Artikel wurde gesagt, dass die if-Anweisung und der ternäre Operator in erster Linie unterschiedliche Rollen haben. Wenn Sie die Rolle klären und richtig verwenden, kann der Leser die Absicht des Codes verstehen und die Lesbarkeit sollte verbessert werden. Ich denke jedoch, dass es ein schwieriges Problem ist, eine Grenze zwischen "Berechnung" und "Verzweigungsverarbeitung" zu ziehen, da dies viel mit dem Zweck des zu erstellenden Programms und dem Sinn des Programmierers zu tun hat.
Recommended Posts