create account

Reflexionen über die Programmiersprache Rust 13 by jeyf123

View this thread on: hive.blogpeakd.comecency.com
· @jeyf123 ·
$3.98
Reflexionen über die Programmiersprache Rust 13
**Schleifen**
**3. Loop**

Im Prinzip schon angekündigt, wird sich das Schleifenthema als Haupttrakt mit diesem Abschnitt beenden. *Loop* ist eine Endlosschleife und kann nur durch ein gezieltes *Break* abgebrochen werden.  Es reicht vollkommen aus, den Inhalt von *loop* in geschweifte Klammern zu setzen und schon hört es nicht mehr auf.

```
fn main (){
    loop{
        print!("Endlosschleife - ");
    }
}
```
Ausgabe (Ausschnitt)

![image.png](https://files.peakd.com/file/peakd-hive/jeyf123/23swq4zmShNJe5MkcbLqcL2jVoSkh5cq3n1mYz1zdmEk7EgsE1gFR2J8NQ2x8pGBBa6G5.png)

Das ist natürlich nicht übermäßig nützlich, zeigt aber verkürzt, wie es funktioniert. Was ist aber der Einsatzort einer solchen *Loop-Schleife*?
Kurz gesagt, kann man sie überall dort brauchen, wo ein Programm am Laufen gehalten werden soll. Obwohl ich keine Ahnung von der Entwicklung eines Betriebssystems habe, würde ich davon ausgehen, dass *loop*(s) hier nötig sind, denn ansonsten (nachdem in der Programmierung vorgesehen ist, dass es sich von oben nach unten durcharbeitet), wäre wohl schon bald Schluss, wenn die Basis nicht aufrechterhalten wird. Im Laufe der Zeit werde ich vermutlich auch vermehrt darauf zurückgreifen, aber bis jetzt schreibe ich noch nicht so große Programme, dass ich es brauchen würde ... Aber mal sehen, es ist gut, so etwas in petto zu haben. 

Um auch auf die Iteration einzugehen

```
let mut x=0;
     loop{
         x=x+1;
        print!(" x: {} - ",x);
    }
```
Ausgabe (Ausschnitt)

![image.png](https://files.peakd.com/file/peakd-hive/jeyf123/23swpgUCx94cCEeUieUbQ5xAENCYSRuc4rxaRfN5qgWoJwqaMGJqnrdZcNZwj9NQY4Cf4.png)

Die Bandbreite des *i32* fängt einfach immer wieder von vorne an. Wie bei der *while true* Schleife.

Eine nützliche Besonderheit der *loop*-Schleife möchte ich nicht vorenthalten. Diese lassen sich nämlich auch einen Namen geben. Einfach mit
'name_der_Schleife: loop;' Wenn mehrere *loops* am Laufen sind, können diese durch ihre Namen mit break 'name_der_Schleife abgebrochen werden.

```
    'loop_gesamt: loop{
        println!("Hier beginnen die Geschichten von x und y");
        let mut x =0;
        'loop_x: loop{

            x=x+1;
            if x <=10{
                 println!("{}. x geht noch weiter.",x);
            }
            else{
                println!("Das ist das Ende von x");
                break 'loop_x;
            }
        }

        let mut y =0;
        'loop_y: loop{

            y=y+1;
            if y <=10{
                 println!("{}. y geht noch weiter.",y);
            }
            else{
                println!("Das ist das Ende von y");
                break 'loop_y;
            }

        }

                println!("Das ist das Ende vom Lied von x und y");
                break 'loop_gesamt;

            }
```

Zugegeben, das sieht hier etwas viel aus. Es ist sogar anders, als ich ursprünglich gedacht habe. Bei diesem Beispiel habe ich selbst einiges dazu gelernt. Vor allem in welche Richtungen die Gedanken beim Programmieren laufen sollten. 

*Entspricht das was ich will, dem was ich will?
*Weiß ich etwas nicht, oder ist die Methode falsch, die ich anwende?
*Wenn ich die richtige Methode anwende, warum funktioniert es nicht?
*Sind meine Annahmen über die Methode richtig?

Da gäbe es wahrscheinlich noch ein paar so ähnlich klingende Überlegungen, die allesamt ähnlich klingen, aber trotzdem für einen Zweck essentiell sind.

<u>Also, was macht dieser Codeblock?</u>

In Summe gibt es 3 Endlosschleifen, die per *break* mit dem jeweiligen Schleifennamen abgebrochen werden. 

*loop_gesamt
*loop_x
*loop_y

loop_gesamt bricht ab, wenn die loops von x und y durchgelaufen sind. Im übrigen das letzte Break, darf nicht vor der *println!*-Anweisung stehen, sonst bekommt man diese nie vor Gesicht. 

loop_x lauft bis 10, wird dann abgebrochen und geht weiter auf loop_y. Das widerrum bricht auch bei 10 ab und dadurch geht der Code zum Schleifende von loop_gesamt. Die Ausgabe sieht dann so aus:



![image.png](https://files.peakd.com/file/peakd-hive/jeyf123/23u5XKkMQFeqFzN3R9ykHhW119cjhsUjJqbuRkgQRu5eLa1HZQiHYEmi1zRpGWjG57HZf.png)

Heute kann ich keine gesamte Ausgabe zeigen, weil Endlosschleifen logischerweise dafür nicht geeignet sind. Aber natürlich, wie mein Quellcode aussieht, obwohl er so nicht vernüftig ausführbar wäre.

```
fn main (){
    loop{
        print!("Endlosschleife - ");
    }
    let mut x=0;
     loop{
         x=x+1;
        print!(" x: {} - ",x);
    }


    'loop_gesamt: loop{
        println!("Hier beginnen die Geschichten von x und y");
        let mut x =0;
        'loop_x: loop{

            x=x+1;
            if x <=10{
                 println!("{}. x geht noch weiter.",x);
            }
            else{
                println!("Das ist das Ende von x");
                break 'loop_x;
            }
        }

        let mut y =0;
        'loop_y: loop{

            y=y+1;
            if y <=10{
                 println!("{}. y geht noch weiter.",y);
            }
            else{
                println!("Das ist das Ende von y");
                break 'loop_y;
            }

        }

                println!("Das ist das Ende vom Lied von x und y");
                break 'loop_gesamt;

            }

    }





```

![13.png](https://files.peakd.com/file/peakd-hive/jeyf123/Eo2BpKHNVyKHMMX3WugfS2Xx3uXLoHCmQrsPtdgVJn2k5M2dvwFT2nnph4pvoUwAenj.png)


👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
properties (23)
authorjeyf123
permlinkreflexionen-uber-die-programmiersprache-rust-13
categorydeutsch
json_metadata{"app":"peakd/2025.1.2","format":"markdown","tags":["deutsch","hive-engine","cc","rust","loop","programmierung","development"],"users":[],"image":["https://files.peakd.com/file/peakd-hive/jeyf123/23swq4zmShNJe5MkcbLqcL2jVoSkh5cq3n1mYz1zdmEk7EgsE1gFR2J8NQ2x8pGBBa6G5.png","https://files.peakd.com/file/peakd-hive/jeyf123/23swpgUCx94cCEeUieUbQ5xAENCYSRuc4rxaRfN5qgWoJwqaMGJqnrdZcNZwj9NQY4Cf4.png","https://files.peakd.com/file/peakd-hive/jeyf123/23u5XKkMQFeqFzN3R9ykHhW119cjhsUjJqbuRkgQRu5eLa1HZQiHYEmi1zRpGWjG57HZf.png","https://files.peakd.com/file/peakd-hive/jeyf123/Eo2BpKHNVyKHMMX3WugfS2Xx3uXLoHCmQrsPtdgVJn2k5M2dvwFT2nnph4pvoUwAenj.png"]}
created2025-01-12 14:30:00
last_update2025-01-12 14:30:00
depth0
children12
last_payout2025-01-19 14:30:00
cashout_time1969-12-31 23:59:59
total_payout_value1.995 HBD
curator_payout_value1.988 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length5,413
author_reputation85,478,775,140,422
root_title"Reflexionen über die Programmiersprache Rust 13"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id139,939,437
net_rshares6,269,471,305,900
author_curate_reward""
vote details (32)
@indextrader24 ·
!invest_vote !LUV !PIZZA !wine !WITZ !LOLZ !Hugh
👍  
👎  
properties (23)
authorindextrader24
permlinkspzea9
categorydeutsch
json_metadata{"app":"hiveblog/0.1"}
created2025-01-12 15:13:21
last_update2025-01-12 15:13:21
depth1
children10
last_payout2025-01-19 15:13:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length48
author_reputation464,462,650,077,594
root_title"Reflexionen über die Programmiersprache Rust 13"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id139,940,297
net_rshares1,474,654,681
author_curate_reward""
vote details (2)
@jeyf123 ·
$0.06
Danke dir:)
👍  ,
properties (23)
authorjeyf123
permlinkre-indextrader24-2025114t53540790z
categorydeutsch
json_metadata{"type":"comment","tags":["ecency"],"app":"ecency/3.2.0-mobile","format":"markdown+html"}
created2025-01-14 04:35:39
last_update2025-01-14 04:35:39
depth2
children8
last_payout2025-01-21 04:35:39
cashout_time1969-12-31 23:59:59
total_payout_value0.032 HBD
curator_payout_value0.031 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length11
author_reputation85,478,775,140,422
root_title"Reflexionen über die Programmiersprache Rust 13"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id139,984,317
net_rshares114,434,457,920
author_curate_reward""
vote details (2)
@indextrader24 ·
Frohes Neues 

!invest_vote !LUV !PIZZA !wine !WITZ !LOLZ !Hugh
properties (22)
authorindextrader24
permlinksq5jka
categorydeutsch
json_metadata{"app":"hiveblog/0.1"}
created2025-01-15 22:53:00
last_update2025-01-15 22:53:00
depth3
children6
last_payout2025-01-22 22:53:00
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length63
author_reputation464,462,650,077,594
root_title"Reflexionen über die Programmiersprache Rust 13"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id140,032,919
net_rshares0
@investinthefutur ·
@indextrader24 denkt du hast ein Vote durch @investinthefutur verdient!<br>@indextrader24 thinks you have earned a vote of @investinthefutur !<br>
properties (22)
authorinvestinthefutur
permlinkre-re-indextrader24-2025114t53540790z-20250115t225322z
categorydeutsch
json_metadata"{"app": "beem/0.24.26"}"
created2025-01-15 22:53:21
last_update2025-01-15 22:53:21
depth3
children0
last_payout2025-01-22 22:53:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length146
author_reputation135,724,265,253,762
root_title"Reflexionen über die Programmiersprache Rust 13"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id140,032,926
net_rshares0
@luvshares ·
@jeyf123, @indextrader24<sub>(3/5)</sub> sent you LUV. | <a
    href="https://crrdlx.on.fleek.co/" style="text-decoration:none">tools</a> | <a 
    href="https://discord.gg/K5GvNhcPqR" style="text-decoration:none">discord</a> | <a href="https://peakd.com/c/hive-159259">community </a> | <a 
    href="https://hivewiki.netlify.app" style="text-decoration:none">HiveWiki</a> | <a href="https://ichthys.netlify.app" style="text-decoration:none"><>< daily</a>



<center>Made with <a href="https://peakd.com/@luvshares" target="_blank">LUV</a> by <a href="https://hive.blog/@crrdlx" target="_blank">crrdlx</a></center>
properties (22)
authorluvshares
permlinkre-spzea9-20250112t151328z
categorydeutsch
json_metadata"{"app": "beem/0.24.26"}"
created2025-01-12 15:13:27
last_update2025-01-12 15:13:27
depth2
children0
last_payout2025-01-19 15:13:27
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length614
author_reputation5,651,102,754,153
root_title"Reflexionen über die Programmiersprache Rust 13"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id139,940,300
net_rshares0
@investinthefutur ·
@indextrader24 denkt du hast ein Vote durch @investinthefutur verdient!<br>@indextrader24 thinks you have earned a vote of @investinthefutur !<br>
properties (22)
authorinvestinthefutur
permlinkre-reflexionen-uber-die-programmiersprache-rust-13-20250112t151341z
categorydeutsch
json_metadata"{"app": "beem/0.24.26"}"
created2025-01-12 15:13:42
last_update2025-01-12 15:13:42
depth1
children0
last_payout2025-01-19 15:13:42
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length146
author_reputation135,724,265,253,762
root_title"Reflexionen über die Programmiersprache Rust 13"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id139,940,302
net_rshares0