Hallo Leute,
ich hätte eine Verständnisfrage zu den beiden Operatoren. Ich weiß das " = " ein Zuweisungsoperator ist und man wie der Name schon sagt etwas zuweist. ( int var = 7)
Der zweite Operator " == " ist ja ein Vergleichsoperator.(Also eine bestimmte Varibale ist gleich so und so )Nun zu meinem Beispiel :
Wenn " == " der Vergleichsoperator ist und " = " der Zuweisungsoperator, warum muss ich bei meiner if else Verzweigung bei if, else if und else " = " verwenden und bei while " == " ?
Wenn ich jetzt sage wenn zahl4 gleich null ist (zahl4 == 0) soll der loop false zugewiesen werden ( loop = false), wenn zahl4 gleich eins ist ( zahl4 == 1) dann soll der loop true zugewiesen werden ( loop = false) und sonsten soll der loop false zugewiesen werden.
Die ganze Schleife soll ja ablaufen solange die loop "true" ist. (while(loop == true) )
Warum muss beim while(loop == true) der Vergleichsoprator verwendet werden und bei den if, else if unf else der Zuweisungsoprator?
ich verstehe ja dass es heißen soll, führe die schleife solange aus while die loop gleich true ist . Aber warum muss man dann schreiben z.B. wenn die zahl4 gleich null ist, ist wird der loop false zugewiesen (" = ") und nicht ist die loop gleich false (" == ") ?
Und warum meckert die IDE bei while rum, wenn ich else rauslösche mit "The local variable loop may not have been initialized" , wenn ich doch schon oben die "loop" variable deklariert habe und bei if und if else zugewiesen habe ?
Mfg Danke im Vorraus
ich hätte eine Verständnisfrage zu den beiden Operatoren. Ich weiß das " = " ein Zuweisungsoperator ist und man wie der Name schon sagt etwas zuweist. ( int var = 7)
Der zweite Operator " == " ist ja ein Vergleichsoperator.(Also eine bestimmte Varibale ist gleich so und so )Nun zu meinem Beispiel :
Java:
package calculator;
import java.util.Scanner;
public class Taschenrechner {
public static void main(String[] args) {
int zahl1;
int zahl2;
int zahl3;
int zahl4;
boolean loop;
Scanner sc = new Scanner(System.in);
do {
System.out.println("Geben Sie die erste Ganzzahl ein:");
zahl1 = sc.nextInt();
System.out.println("Geben Sie die zweite Ganzzahl ein:");
zahl2 = sc.nextInt();
System.out.println("Wenn Sie beide Zahlen addieren wollen, schreiben sie 1");
System.out.println("Wenn Sie beide Zahlen subtrahieren wollen, schreiben sie 2");
System.out.println("Wenn Sie beide Zahlen multiplizieren wollen, schreiben sie 3");
System.out.println("Wenn Sie beide Zahlen dividieren wollen, schreiben sie 4");
zahl3 = sc.nextInt();
switch(zahl3) {
case 1 : System.out.println(zahl1 + zahl2); break;
case 2 : System.out.println(zahl1 - zahl2);break;
case 3 : System.out.println(zahl1 * zahl2);break;
case 4 : System.out.println(zahl1 / zahl2); break;
default :System.out.println("Programmabruch, da falsche Zahl eingelesen...");
}
System.out.println("Schreiben Sie 0 für Abbruch und 1 für Fortführen!");
zahl4 = sc.nextInt();
if(zahl4 == 0) {
loop = false;
}
else if (zahl4 == 1) {
loop = true;
}
else {
System.out.println("abbruch");
loop = false;
}
}while(loop == true);
}
}
Wenn ich jetzt sage wenn zahl4 gleich null ist (zahl4 == 0) soll der loop false zugewiesen werden ( loop = false), wenn zahl4 gleich eins ist ( zahl4 == 1) dann soll der loop true zugewiesen werden ( loop = false) und sonsten soll der loop false zugewiesen werden.
Die ganze Schleife soll ja ablaufen solange die loop "true" ist. (while(loop == true) )
Warum muss beim while(loop == true) der Vergleichsoprator verwendet werden und bei den if, else if unf else der Zuweisungsoprator?
ich verstehe ja dass es heißen soll, führe die schleife solange aus while die loop gleich true ist . Aber warum muss man dann schreiben z.B. wenn die zahl4 gleich null ist, ist wird der loop false zugewiesen (" = ") und nicht ist die loop gleich false (" == ") ?
Und warum meckert die IDE bei while rum, wenn ich else rauslösche mit "The local variable loop may not have been initialized" , wenn ich doch schon oben die "loop" variable deklariert habe und bei if und if else zugewiesen habe ?
Mfg Danke im Vorraus