Rost - Entscheidungsfindung

Entscheidungsstrukturen erfordern, dass der Programmierer eine oder mehrere Bedingungen angibt, die vom Programm bewertet oder getestet werden sollen, zusammen mit einer Anweisung oder Anweisungen, die ausgeführt werden sollen, wenn die Bedingung als wahr bestimmt wird, und optional anderen Anweisungen, die ausgeführt werden sollen, wenn die Bedingung wird als falsch bestimmt.

Im Folgenden ist die allgemeine Form einer typischen Entscheidungsstruktur dargestellt, die in den meisten Programmiersprachen zu finden ist.

Sr.Nr. Aussage & Beschreibung
1

if statement

Eine if- Anweisung besteht aus einem booleschen Ausdruck, gefolgt von einer oder mehreren Anweisungen.

2

if...else statement

Auf eine if- Anweisung kann eine optionale else- Anweisung folgen , die ausgeführt wird, wenn der Boolesche Ausdruck false ist.

3

else...if and nested ifstatement

Sie können eine if- oder if- Anweisung in einer anderen if- oder if- Anweisung verwenden.

4

match statement

Mit einer Übereinstimmungsanweisung kann eine Variable anhand einer Werteliste getestet werden.

If-Anweisung

Das Konstrukt if… else wertet eine Bedingung aus, bevor ein Codeblock ausgeführt wird.

Syntax

if boolean_expression {
   // statement(s) will execute if the boolean expression is true
}

Wenn der Boolesche Ausdruck true ergibt, wird der Codeblock in der if-Anweisung ausgeführt. Wenn der Boolesche Ausdruck false ergibt, wird der erste Codesatz nach dem Ende der if-Anweisung (nach der schließenden geschweiften Klammer) ausgeführt.

fn main(){
   let num:i32 = 5;
   if num > 0 {
      println!("number is positive") ;
   }
}

Das obige Beispiel wird gedruckt number is positive als die vom if-Block angegebene Bedingung ist wahr.

if else-Anweisung

Ein if kann von einem optionalen gefolgt werden elseBlock. Der else-Block wird ausgeführt, wenn der von der if-Anweisung getestete boolesche Ausdruck false ergibt.

Syntax

if boolean_expression {
   // statement(s) will execute if the boolean expression is true
} else {
   // statement(s) will execute if the boolean expression is false
}

FlowChart

Das ifBlock schützt den bedingten Ausdruck. Der der if-Anweisung zugeordnete Block wird ausgeführt, wenn der boolesche Ausdruck true ergibt.

Dem if-Block kann eine optionale else-Anweisung folgen. Der dem else-Block zugeordnete Anweisungsblock wird ausgeführt, wenn der Ausdruck false ergibt.

Illustration - Einfach wenn ... sonst

fn main() {
   let num = 12;
   if num % 2==0 {
      println!("Even");
   } else {
      println!("Odd");
   }
}

Das obige Beispiel gibt an, ob der Wert in einer Variablen gerade oder ungerade ist. Der if-Block überprüft die Teilbarkeit des Werts durch 2, um denselben zu bestimmen. Hier ist die Ausgabe des obigen Codes -

Even

Verschachteltes Wenn

Das else…ifLeiter ist nützlich, um mehrere Bedingungen zu testen. Die Syntax ist wie folgt:

Syntax

if boolean_expression1 {
   //statements if the expression1 evaluates to true
} else if boolean_expression2 {
   //statements if the expression2 evaluates to true
} else {
   //statements if both expression1 and expression2 result to false
}

Bei der Verwendung von if… else… if- und else-Anweisungen sind einige Punkte zu beachten.

  • Ein if kann null oder eins haben und es muss nach jedem anderen kommen..if.
  • Ein Wenn kann null bis viele andere haben ... wenn und sie müssen vor dem Anderen kommen.
  • Sobald ein else..if erfolgreich ist, wird keines der verbleibenden else..if oder else getestet.

Beispiel: sonst… wenn Leiter

fn main() {
   let num = 2 ;
   if num > 0 {
      println!("{} is positive",num);
   } else if num < 0 {
      println!("{} is negative",num);
   } else {
      println!("{} is neither positive nor negative",num) ;
   }
}

Das Snippet zeigt an, ob der Wert positiv, negativ oder null ist.

Ausgabe

2 is positive

Übereinstimmungserklärung

Die Übereinstimmungsanweisung prüft, ob ein aktueller Wert aus einer Werteliste übereinstimmt. Dies ist der switch-Anweisung in der Sprache C sehr ähnlich. Beachten Sie zunächst, dass der Ausdruck nach dem Schlüsselwort match nicht in Klammern stehen muss.

Die Syntax ist wie folgt.

let expressionResult = match variable_expression {
   constant_expr1 => {
      //statements;
   },
   constant_expr2 => {
      //statements;
   },
   _ => {
      //default
   }
};

In dem unten angegebenen Beispiel state_code wird mit einer Liste von Werten abgeglichen MH, KL, KA, GA- wenn eine Übereinstimmung gefunden wird, wird ein String - Wert der Variablen zurück Zustand . Wenn keine Übereinstimmung gefunden wird, wird der Standardfall _ übereinstimmt und der Wert Unbekannt zurückgegeben.

fn main(){
   let state_code = "MH";
   let state = match state_code {
      "MH" => {println!("Found match for MH"); "Maharashtra"},
      "KL" => "Kerala",
      "KA" => "Karnadaka",
      "GA" => "Goa",
      _ => "Unknown"
   };
   println!("State name is {}",state);
}

Ausgabe

Found match for MH
State name is Maharashtra