Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
 |
18.01.14, 18:37
|
#1
|
Erfahrenes Mitglied
Registriert seit: Mar 2011
Beiträge: 607
Bedankt: 316
|
C++ (While-Schleife)
Folgenden Code habe ich mir zur Übung der While Schleife angeschaut
#include <iostream>
using namespace std;
int main(void)
{
int eingabe;
eingabe = -1;
while(eingabe != 0) { //Bedigung
cin >> eingabe;
cout << eingabe * eingabe << endl; //Potenz berechnen
}
return 0;
}
Edit: Ich habe mal die Zeile ,, eingabe = -1;" gelöscht und es scheint immer noch alles zu funktionieren und so würde ich es auch verstehen. Aber wieso nun die -1? Und kann ich sie auch weglassen, denn anscheinend funktioniert es..
Meine Frage lautet, weshalb ich aufgefordert bin die variable ,,eingabe" zu initialisieren ? Also mithilfe cin >> eingabe:
Es wird doch am Anfang bereits ein fester wert zugeteilt, nämlich -1. Müsste dann nicht die ,,eingabe" immer -1 liefern ?
__________________
Kansas City Shuffle? "Ein Kansas City Shuffle ist, wenn alle Welt nach rechts kuckt, während du links rum gehst."
|
|
|
18.01.14, 19:18
|
#2
|
Newbie
Registriert seit: Apr 2013
Beiträge: 50
Bedankt: 43
|
Ohne das zuerst eingabe auf -1 gesetzt wird, könnte die while-Schleife gar nicht "betreten" werden, da diese ja nur ausgeführt wird, wenn die eingabe ungleich null ist. Und wenn zuvor gar kein Wert zugewiesen wurde, wird eine Fehlermeldung ausgegeben. Innerhalb der Schleife wird dann einfach eingabe überschrieben.
__________________
Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.
|
|
|
18.01.14, 19:29
|
#3
|
abcdefgh
Registriert seit: Oct 2008
Ort: Ziegengehege
Beiträge: 2.650
Bedankt: 2.533
|
Bitte das nächste mal den zugehörigen Bereich (Programmierung) für deinen Thread nutzen!
|
|
|
18.01.14, 19:32
|
#4
|
Erfahrenes Mitglied
Registriert seit: Mar 2011
Beiträge: 607
Bedankt: 316
|
Also.... Ich habe der eingabe erst einmal einfach einen Wert zugeschrieben - initialisiert (Nach lust und laune, wobei er ungleich Null sein soll). Das brauche ich um überhaupt in die while Schleife reinzukommen, denn es gilt das die Schleife ausgeführt wird, nur wenn die Bedingung erfüllt wird (Hier: eingabe ungleich Null). Bis hier hin richtig?
Was würde den passieren wenn ich in die Schleife mit keiner initalisierten Variable rein gehe ? ,,Und wenn zuvor gar kein Wert zugewiesen wurde, wird eine Fehlermeldung ausgegeben. " Bei mir wird keine Fehlermeldung ausgegeben, warum? Also kann ich davon ausgehen, das eine Fehlermeldung im Normalfall erscheint?
Und noch eine Frage! Wenn ich es richtig verstanden habe, wiederholt sich die Schleife exakt ab den While Code immer wieder, bis ebend die Bedingung erfüllt ist. Ist das richtig? Also springt sie sozusagen immer zurück zu while(eingabe != 0) ....
__________________
Kansas City Shuffle? "Ein Kansas City Shuffle ist, wenn alle Welt nach rechts kuckt, während du links rum gehst."
|
|
|
18.01.14, 19:45
|
#5
|
Newbie
Registriert seit: Apr 2013
Beiträge: 50
Bedankt: 43
|
Deine Überlegungen stimmen, eine while-Schleife lässt sich hiermit sehr gut darstellen:
Das mit der Fehlermeldung war ein bisschen voreilig von mir, war gerade im "Python-Modus". Der Teil wird bei C++ ignoriert, wenn eingabe deklariert (die Zeile "int eingabe", hier wird der Speicherplatz für die Variable "eingabe" freigehalten) aber nicht mit einem Wert versehen wird.
__________________
Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.
|
|
|
19.01.14, 14:06
|
#6
|
Erfahrenes Mitglied
Registriert seit: Mar 2011
Beiträge: 607
Bedankt: 316
|
Ich hätte mal eine Frage bzgl. der For Schleife
int feld[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; // 10 Elemente, mit Initalisierung
for(int i = 0; i < 10; ++i) {
cout << feld[i] << " "; // Elemente 0 bis 9 ausgeben
}
Ich verstehe folgenden Punkt nicht
for(int i = 0; i < 10; ++i).
Das int i=0 irritiert mich. Weshalb wird eine neue Variable deklariert? Und woher weiss diese Variable, dass es sich bei i=0 um feld[0]=1 handelt ?
Ich bin etwas verwirrt und hoffe mehr oder weniger das jemand meine Fragestellung versteht.
okay ich hab es jetzt doch verstanden. Man könnte auch die Zählvariable i for der for Schleife deklarieren (int i  . Dann w+re i=0 die Startanweisung in der Schleife, wobei das bedeutet das von 0 gezählt wird. In der Mitte steht die Bedingung für die Schleife, damit sie also eintrifft und am Ende steht die Zählart!
__________________
Kansas City Shuffle? "Ein Kansas City Shuffle ist, wenn alle Welt nach rechts kuckt, während du links rum gehst."
|
|
|
19.01.14, 14:27
|
#7
|
Newbie
Registriert seit: Apr 2013
Beiträge: 50
Bedankt: 43
|
for-Schleife anschaulich dargestellt:
Das "i" ist bei einer for-Schleife nur eine "Dummy-Variable", die nach Verlassen der Schleife keine Bedeutung mehr hat. i = 0 gibt den Startpunkt der Schleife, i < 10 heißt, dass die Schleife solange durchlaufen wird, bis i < 10 ist, und i++ (nicht ++i wie in diesem Beispiel) bedeutet, das "i" bei jedem Durchlauf um 1 erhöht wird.
Während der Anweisungen innerhalb der Schleife, wird i als Index für das array "feld" verwendet. Damit kann man auf die Einträge zugreifen. Die Nummerierung bei C++-Arrays beginnt bei 0.
__________________
Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:02 Uhr.
().
|