Ich bin seit der Programmierung in bedingten Aussagen seit !=
oder !condition
nicht ungleich. Vielleicht liegt es daran, dass mein Gehirn in der englischen Sprache vorkonditioniert ist, um mehrere Negationen zu überdenken. Aber ich frage mich, ob es eine gemeinsame Entwicklungsgemeinschaft gibt, die akzeptiert wird, wenn es darum geht, in bedingten Aussagen wahr zu bewerten? Oder vielmehr, so wie ich es manchmal sehe: Auswerten für nicht falsch.Common Code Convention für nicht gleich in bedingten statements
Vielleicht gibt es Ausnahmen, bei denen !=
nicht vollständig unvermeidbar sein kann?
Beispiel:
Dies könnte eine sehr einfache und trivial sein, ist aber diese
bevorzugtstring myStringVar = "dogs";
if (myStringVar != "dogs") //In my mind, "False this is not true"
{
//code
}
else if (myStringVar != cats) //In my mind, "True this is false"
{
//code
}
Oder ist dies bevorzugt
if (myStringVar == "dogs")
{
//"True"
}
else if (myStringVar == "cats")
{
//"False"
}
Dann gibt es
bool MyBoolMethod()
{
return false;
}
if (!MyBoolMethod()) // True this method does not return true
{
//code
}
Dies ist ein sehr triviales und vereinfachtes Beispiel, ich möchte nur wissen, wie man lesbaren, wartbaren Code schreibt. Hat jemand sonst eine etwas schwierige Zeit, solche Bedingungen zu lesen oder ist es nur ich?
Ich lese '(myStringVar! =" Dogs ")' als 'myStringVar' ist nicht gleich' 'dogs''. Das heißt, dass diese Bedingung kein Problem sein sollte. –
Und vielleicht ist das mein Problem; Manchmal stelle ich mir beim Debuggen oder Schreiben von Code vor, dass die Variable zugewiesen wird. In komplexeren Situationen scheint ich mit "nicht gleich" gegenüber "gleich" zu verwechseln. –
Das erste if-else-if-Konstrukt oben ist definitiv schlecht. Diese Logik sollte nach Besonderheiten suchen. Die zwei Zweige der Logik dort könnten Szenarien erfassen, die in beide logischen Konstrukte fallen würden. Die Prüfung auf Gleichheit in diesem Fall wäre definitiv besser. Es hängt fast ausschließlich davon ab, was Sie tun möchten. Sie sollten auf jeden Fall doppelte Negation vermeiden, obwohl z. eine boolesche Variable mit dem Namen 'notFound' zu haben, die bei true beginnt und dann auf false setzt, wenn du die fragliche Sache findest. Es wäre besser, eine "gefundene" Variable zu haben, die falsch startet und dann auf wahr setzt, sobald sie gefunden ist. – ManoDestra