Hallo zusammen,
ich habe eine Frage. In welcher Reihenfolge wird mein Quelltext kompiliert? Ich gehe momentan nach dem EVA-Prinzip und beginne mit der Variablendeklaration.
Zuerst vereinbare ich also die Variablen die ich brauche.
Anschliessend widme ich mich der Eingabe
Danach der Verarbeitung:
und zuletzt der Ausgabe:
und bei der Ausgabe vermute ich nun einen Fehler. In welcher Reihenfolge fuehrt Java denn meinen Quellcode aus? Denn wenn ich mein Programm starte, rechnet er mir nur die erste Textbox aus, wenn diese die Bedingung erfuellt, erfuellen aber gleichzeitig auch die 4. und 5. Textbox bspw. die Bedingung, ignoriert mein Programm dies voellig. Warum tut es das?
Das ersteinmal meine Frage. Mein Programm dazu:
Ziel: Es sollen 2 Dualzahlen miteinander verundet werden. Das bedeutet, dass wenn eine Dualzahl 1 und die andere ebenfalls 1 ist, das Ergebnis 1 ist. Ist mindestens eine der beiden Dualzahlen 0, so ist auch das Ergebnis 0.
Dies habe ich in diesem Quelltext versucht zu implementieren, doch das oben beschriebene Problem tritt auf.
oder liegt es an meinen if's? Kann ich diese fuer diese Art der Benutzung gar nicht verwenden, sondern benoetige eine for-Schleife oder etwaiges?
ich habe eine Frage. In welcher Reihenfolge wird mein Quelltext kompiliert? Ich gehe momentan nach dem EVA-Prinzip und beginne mit der Variablendeklaration.
Zuerst vereinbare ich also die Variablen die ich brauche.
Java:
//Variablendeklaration
int a, b, c, d, e, f, g, h;
int aa, bb, cc, dd, ee, ff, gg, hh;
int aaa, bbb, ccc, ddd, eee, fff, ggg, hhh;
Anschliessend widme ich mich der Eingabe
Java:
//Eingabe
a = Integer.parseInt(tfd_start128.getText());
b = Integer.parseInt(tfd_start64.getText());
c = Integer.parseInt(tfd_start32.getText());
d = Integer.parseInt(tfd_start16.getText());
e = Integer.parseInt(tfd_start8.getText());
f = Integer.parseInt(tfd_start4.getText());
g = Integer.parseInt(tfd_start2.getText());
h = Integer.parseInt(tfd_start1.getText());
aa = Integer.parseInt(tfd_und128.getText());
bb = Integer.parseInt(tfd_und64.getText());
cc = Integer.parseInt(tfd_und32.getText());
dd = Integer.parseInt(tfd_und16.getText());
ee = Integer.parseInt(tfd_und8.getText());
ff = Integer.parseInt(tfd_und4.getText());
gg = Integer.parseInt(tfd_und2.getText());
hh = Integer.parseInt(tfd_und1.getText());
Danach der Verarbeitung:
Java:
aaa = a + aa;
bbb = b + bb;
ccc = c + cc;
ddd = d + dd;
eee = e + ee;
fff = f + ff;
ggg = g + gg;
hhh = h + hh;
und zuletzt der Ausgabe:
Java:
if(aaa == 2) {
tfd_ziel128.setText("1");
return;
}
if(bbb == 2) {
tfd_ziel64.setText("1");
return;
}
if(ccc == 2) {
tfd_ziel32.setText("1");
return;
}
if(ddd == 2) {
tfd_ziel16.setText("1");
return;
}
if(eee == 2) {
tfd_ziel8.setText("1");
return;
}
if(fff == 2) {
tfd_ziel4.setText("1");
return;
}
if(ggg == 2) {
tfd_ziel2.setText("1");
return;
}
if(hhh == 2) {
tfd_ziel1.setText("1");
return;
}
und bei der Ausgabe vermute ich nun einen Fehler. In welcher Reihenfolge fuehrt Java denn meinen Quellcode aus? Denn wenn ich mein Programm starte, rechnet er mir nur die erste Textbox aus, wenn diese die Bedingung erfuellt, erfuellen aber gleichzeitig auch die 4. und 5. Textbox bspw. die Bedingung, ignoriert mein Programm dies voellig. Warum tut es das?
Das ersteinmal meine Frage. Mein Programm dazu:
Ziel: Es sollen 2 Dualzahlen miteinander verundet werden. Das bedeutet, dass wenn eine Dualzahl 1 und die andere ebenfalls 1 ist, das Ergebnis 1 ist. Ist mindestens eine der beiden Dualzahlen 0, so ist auch das Ergebnis 0.
Dies habe ich in diesem Quelltext versucht zu implementieren, doch das oben beschriebene Problem tritt auf.
Java:
public void btn_verunden_ActionPerformed(ActionEvent evt) {
//Variablendeklaration
int a, b, c, d, e, f, g, h; //a=128 h=1
int aa, bb, cc, dd, ee, ff, gg, hh; //aa=128 hh=1
int aaa, bbb, ccc, ddd, eee, fff, ggg, hhh; //aaa=128 hhh=1
//Eingabe Dualzahl
a = Integer.parseInt(tfd_start128.getText());
b = Integer.parseInt(tfd_start64.getText());
c = Integer.parseInt(tfd_start32.getText());
d = Integer.parseInt(tfd_start16.getText());
e = Integer.parseInt(tfd_start8.getText());
f = Integer.parseInt(tfd_start4.getText());
g = Integer.parseInt(tfd_start2.getText());
h = Integer.parseInt(tfd_start1.getText());
//Eingabe der zu verundenden Dualzahl
aa = Integer.parseInt(tfd_und128.getText());
bb = Integer.parseInt(tfd_und64.getText());
cc = Integer.parseInt(tfd_und32.getText());
dd = Integer.parseInt(tfd_und16.getText());
ee = Integer.parseInt(tfd_und8.getText());
ff = Integer.parseInt(tfd_und4.getText());
gg = Integer.parseInt(tfd_und2.getText());
hh = Integer.parseInt(tfd_und1.getText());
//Verarbeitung a und aa neue Variable zuordnen.
aaa = a + aa;
bbb = b + bb;
ccc = c + cc;
ddd = d + dd;
eee = e + ee;
fff = f + ff;
ggg = g + gg;
hhh = h + hh;
//Verarbeitung im Dualzahlfeld nur Dualzahlen eingeben.
if (a<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (b<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (c<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (d<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (e<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (f<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (g<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (h<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (a>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
if (b>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
if (c>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
if (d>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
if (e>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
if (f>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
if (g>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
if (h>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
//Verarbeitung im verunden Dualzahlfeld nur Dualzahlen eingeben
if (aa<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (bb<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (cc<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (dd<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (ee<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (ff<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (gg<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (hh<0)
{lbl_ziel.setText("Keine negativen Werte");
return;}
if (aa>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
if (bb>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
if (cc>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
if (dd>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
if (ee>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
if (ff>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
if (gg>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
if (hh>1)
{lbl_ziel.setText("Dualzahlen sind 0 oder 1");
return;}
//Ausgabe
/* Ausgabe des Ergebnisses unter der Bedingung, dass 1 + 1 = 1 und alles
* andere 0 ist.
*/
if(aaa == 2) {
tfd_ziel128.setText("1");
return;
}
if(bbb == 2) {
tfd_ziel64.setText("1");
return;
}
if(ccc == 2) {
tfd_ziel32.setText("1");
return;
}
if(ddd == 2) {
tfd_ziel16.setText("1");
return;
}
if(eee == 2) {
tfd_ziel8.setText("1");
return;
}
if(fff == 2) {
tfd_ziel4.setText("1");
return;
}
if(ggg == 2) {
tfd_ziel2.setText("1");
return;
}
if(hhh == 2) {
tfd_ziel1.setText("1");
return;
}
}
oder liegt es an meinen if's? Kann ich diese fuer diese Art der Benutzung gar nicht verwenden, sondern benoetige eine for-Schleife oder etwaiges?
Zuletzt bearbeitet: