67 lines
2.0 KiB
Rust
67 lines
2.0 KiB
Rust
fn main() {
|
|
let mut x = 0;
|
|
|
|
println!("If Else:\n-----");
|
|
// If Bedingungen sind sehr ähnlich zu anderen Sprachen
|
|
if x == 0 {
|
|
println!("x ist Null");
|
|
} else if x < 0 {
|
|
println!("x ist negativ");
|
|
} else {
|
|
println!("x ist positiv");
|
|
}
|
|
|
|
println!("\nWhile:\n-----");
|
|
// While Schleifen wie in Java, nur ohne Klammen
|
|
// Klammern dürfen dabei stehen, das würde aber ein Warning ausgeben
|
|
while x < 10 {
|
|
println!("x ist kleiner als 10");
|
|
x += 1;
|
|
}
|
|
|
|
println!("\nFor:\n-----");
|
|
// For Loops sind etwas wilder, die klassische Java for-Loop (for (int i = 0; i < 10; i++) {}) sehe so aus
|
|
for i in 0..10 {
|
|
// Das ist quasi der Ternary Operator aus Python
|
|
let gerade = if i % 2 == 0 { true } else { false }; // Semicolon wichtig, da das eine Variableninitialisierung ist
|
|
|
|
println!("{:?}", gerade);
|
|
}
|
|
|
|
println!("\nLoop:\n-----");
|
|
// Loop läuft solange, bis ein break irgendwo erscheint, oder endlos
|
|
loop {
|
|
println!("Endlosschleifeeeee...");
|
|
break; // nicht mehr endlos
|
|
}
|
|
|
|
println!("\nMatch:\n-----");
|
|
for tag in 1..8 {
|
|
// Switch Case werden realisiert durch Pattern Matching
|
|
match tag {
|
|
1 => println!("Montag :O"),
|
|
2 => println!("Dienstag >:("),
|
|
3 => println!("Mittwoch :("),
|
|
4 => println!("Donnerstag :|"),
|
|
5 => println!("Freitag :)"),
|
|
6 => println!("Samstag :D"),
|
|
7 => println!("Sonntag :D"),
|
|
_ => println!("Tag unbekannt"), // Default Fall
|
|
}
|
|
}
|
|
|
|
let punktzahl = 50;
|
|
|
|
// Durch match kann ein Wert einer Variable zugeordnet werden, je nachdem, was die Lage ist
|
|
let note = match punktzahl {
|
|
0..50 => "Ungenügend",
|
|
50..67 => "Ausreichend",
|
|
67..80 => "Befriedigend",
|
|
80..92 => "Gut",
|
|
92..101 => "Sehr gut",
|
|
_ => "Unbekannte Punktzahl",
|
|
}; // Hier ist ein Semikolon nötig, da es eine Variableninitialisierung ist
|
|
|
|
println!("{note}");
|
|
}
|