geschachtelte schleife

pipi195

Mitglied
Ich bräuchte mal eure Hilfe zu geschachtelte Schleifen. Die Aufgabe lautet:
Erstellen Sie im Folgenden ein Programm, das zwei Variablen für Wahrheitswerte definiert
und für alle möglichen Kombinationen der Wertebelegungen dieser Variablen die Ergebnisse
der logischen Operatoren „und“, „oder“ und „exklusiv oder“ ermittelt und ausgibt.

ich hab leider keine ahnung wie ich das implementieren soll :(

am ende soll es ungefähr so ausschauen:

false && false liefert false
false || false liefert false
false ^ false liefert false
false && true liefert false
false || true liefert true
false ^ true liefert true
true && false liefert false
true || false liefert true
true ^ false liefert true
true && true liefert true
true || true liefert true
true ^ true liefert false

Danke im Vorraus :)
 

XHelp

Top Contributor
Was hast du denn bis jetzt? Und wo genau hast du denn Probleme damit?
Je nach dem was ihr schon alles hattet könnte das da einen Gedankenschubs liefern:
Java:
for (int firstNumber: new int[]{0,1}) {
  for (secondNumber: new int[]{0,1}) {
    System.out.println(firstNumber + " + " + secondNumber + " = " + (firstNumber+secondNumber));
  }
}
 
I

irgendjemand

Gast
"logischer operator XOR"

*lach*

sorry ... aber da hat der jenige der dir die aufgabe gegeben hat einen ziemlich großen fehler gemacht

XOR gibt es in java NUR als bit-wise operator ... aber NICHT als logischen operator ...

genau so wenig wie es NOT nur als logischen ... nicht aber als bit-wise operator gibt

die unterschiede werden deutlich wenn man sich die schreibweisen ansieht

bit-wise : & , | , ^
logisch : && , || , !

logische operatoren werden doppelt geschrieben *ausnahme NOT da es dies nicht als bit-wise gibt*
bit-wise werden einzeln geschrieben ...

da BOOL zwar nur 1 bit könnte man annehmen das bool ^ bool = bool ergibt ... es aber nicht der fall ist ...
das ergebnis einer XOR anweisung in java ist *wie auch die beiden anderen bit-wise operatoren* ein INT ... also ganze 32bit ... obwohl du nur 1bit XOR willst ...
 

Landei

Top Contributor
die unterschiede werden deutlich wenn man sich die schreibweisen ansieht

bit-wise : & , | , ^
logisch : && , || , !

logische operatoren werden doppelt geschrieben *ausnahme NOT da es dies nicht als bit-wise gibt*
bit-wise werden einzeln geschrieben ...

Das stimmt so nicht, du kannst auch
Code:
&
,
Code:
|
und
Code:
^
auf boolsche Werte anwenden. Der Unterschied zwischen
Code:
&
und
Code:
&&
bzw.
Code:
|
und
Code:
||
besteht darin, ob der zweite Operand auch dann ausgewertet wird, wenn das Ergebnis schon feststeht.
Code:
&
und
Code:
|
werten immer beide Operanden aus,
Code:
&&
wertet den zweiten nicht aus, wenn der erste
Code:
false
ist (weil dann das Ergebnis nur
Code:
false
sein kann) und
Code:
||
wertet den zweiten nicht aus, wenn der erste
Code:
true
ist (weil dann das Ergebnis nur
Code:
true
sein kann).

Ein typisches Beispiel sind
Code:
null
-Checks: Du kannst z.B. [c]s == null || s.equals(" ")[/c] schreiben, denn das funktioniert auch, wenn
Code:
s
Code:
null
ist, obwohl der zweite Aufruf
Code:
s
referenziert. Dagegen liefert [c]s == null | s.equals(" ")[/c] eine NullPointerException, wenn
Code:
s
Code:
null
ist.

Da so eine "Kurzschluss-Auswertung" bei
Code:
^
nicht möglich ist (es müssen immer beide Operanden bekannt sein, um das Ergebnis zu ermitteln), gibt es auch keinen speziellen
Code:
^^
-Operator.
 
Zuletzt bearbeitet:

pipi195

Mitglied
Vielen dank für die zahlreichen Antworten.
hier etwas detailierter beschrieben

a) Erstellen Sie dazu zunächst eine ausführbare Programmdatei BoolenVaules.java.
b) Definieren Sie an geeigneter Stelle zwei Variablen für Wahrheitswerte.
c) Implementieren Sie zwei ineinander geschachtelte Schleifen. Jede dieser Schleifen
modifiziert jeweils eine dieser beiden boolesche Variablen.
d) Im Rumpf (d. h. innerhalb) der inneren Schleife implementieren Sie die
Ausgabeanweisungen. Formatieren Sie die Ausgabe so, dass sie gut lesbar ist. Den Wert
einer booleschen Variablen boolVariable geben Sie mit Hilfe der Anweisung
System.out.print(boolVariable) aus.

[Java]
class BoolenVaules {
public static void main(String[] args){

boolean a;
boolean b;
[/code]

jez müsste ja die schleife rein aber ich hab keine ahnung wie ich diese geschachtelte schleife hinschreiben soll :(
 

pro2

Bekanntes Mitglied
Java:
public class test{
    
    static boolean a;
    static boolean b;
    
    public static void main(String[] args) {

        for(int i = 0; i < 2; i++){            
            a = !a;
            
            for(int j = 0; j < 2; j++){              
                b = !b;
                
                if(a && b) 
                    System.out.println("true und true: " + true);             
                else if(a && !b)
                    System.out.println("true und false: " + false); 
                else if(!a && b)
                    System.out.println("false und true: " + false);
                else if(!a && !b)
                    System.out.println("false und false: " + false);
            }
        }      
    }
}

Das geht bestimmt besser, nur um dir mal zu zeigen, wie es gemeint sein/gelöst werden könnte :)

edit: schon besser :D

Java:
for(int i = 0; i < 2; i++){            
    a = !a;

    for(int j = 0; j < 2; j++){              
        b = !b;
        System.out.println(a + " und " + b + " ergibt: " + (a&&b));         
     }
}
 
Zuletzt bearbeitet:

ARadauer

Top Contributor
ich würds so machen....

Java:
public class Test {
	public static void main(String[] args) {
		boolean[] array = { false, true };

		for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array.length; j++) {
				boolean a = array[i];
				boolean b = array[j];
				System.out.println(a + " && " + b + " liefert " + (a && b));
				System.out.println(a + " || " + b + " liefert " + (a || b));
				System.out.println(a + " ^ " + b + " liefert " + (a ^ b));
			}
		}

	}
}
 

pipi195

Mitglied
ich würds so machen....

Java:
public class Test {
	public static void main(String[] args) {
		boolean[] array = { false, true };

		for (int i = 0; i < array.length; i++) {
			for (int j = 0; j < array.length; j++) {
				boolean a = array[i];
				boolean b = array[j];
				System.out.println(a + " && " + b + " liefert " + (a && b));
				System.out.println(a + " || " + b + " liefert " + (a || b));
				System.out.println(a + " ^ " + b + " liefert " + (a ^ b));
			}
		}

	}
}

leider hatte ich noch keine arrays...deshalb kann ich es so wahrscheinlich nicht schreiben. Aber trotzdem danke für deine hilfe :) und bei der ausgabe hat mein prof ja hingeschrieben muss i.wo das System.out.print(booleanvariable)hin:(
 

pipi195

Mitglied
Ich habs verstanden :DDDDDDDD
Ich danke euch vielamals, aber allein auf sowas zu kommen könnte ich nicht :(
könnt ihr für mich noch i.wie eine Tipp mit auf dem Weg geben, wie ich sowas angehen soll?
 

pro2

Bekanntes Mitglied
eine frage: ich hatte bei den festlegungen der attribute noch keine statics verwendet. Geht das auch ohne static?
und kannst du mir vllt sagen was static bedeutet und was es macht? :D
Danke im Vorraus

Du kannst die Variablen innerhalb der main definieren, dann müssen sie nicht static sein. Static Variablen und Methoden können auch ohne eine Instanziierung der Klasse verwendet werden. Damit du hier, in einer statischen Methode, die Variablen verwenden kannst, müssen sie auch static sein. Aber auf dem Gebiet bin ich auch nicht allzu bewandert, benutz mal die Forensuche, die Frage gabs hier bestimmt schon 100x :)

Ich habs verstanden :DDDDDDDD
Ich danke euch vielamals, aber allein auf sowas zu kommen könnte ich nicht :(
könnt ihr für mich noch i.wie eine Tipp mit auf dem Weg geben, wie ich sowas angehen soll?

Den Kopf nicht hängen lassen und es einfach weiterprobieren. Schau dir die Aufgabe erst einmal gut an und versuch sie zu verstehen. Wenn du meinst zu wissen, was am Ende dabei rauskommen soll, ist das schon einmal gut. Dann überleg dir ein Konzept, wie es mit den Vorgaben zu lösen wäre. Oder vielleicht, wenn du einen anderen Weg wüsstest, geh erst einmal über diesen. Später fällt es dir vielleicht leichter, die Aufgabe über den geforderten Weg zu lösen, wenn du zumindest schon mal einen anderen möglichen hast. Du hättest ja hier die Aufgabe erst einmal ohne Schleifen lösen können, vielleicht hättest du dann die passende Idee parat gehabt.
 

Landei

Top Contributor
könnt ihr für mich noch i.wie eine Tipp mit auf dem Weg geben, wie ich sowas angehen soll?

Der beste Tipp (den ich unverständlicherweise noch nie von Leerkörpern gehört habe): Lerne, wie der Debugger in der IDE deiner Wahl funktioniert. Damit siehst du ganz genau, was abgeht, wo es hakt, welche Werte die Variablen haben u.s.w.

Der zweitbeste Tipp: Probiere selber rum, und habe Spaß dabei. Es gibt auch Aufgabensammlungen (z.B. projecteuler.net). Schau dir an, wie das die Profis machen. Schaue auf Frage-Antwort-Seiten wie stackoverflow.com, wenn du nicht weiterkommst.

Der drittbeste Tipp: Zerlege das Problem. Kümmere dich z.B. am Anfang nicht um Eingabedetails, sondern gib Werte vor. Zerlege den Algorithmus in verdauliche Stücke, spendiere den Stücken eigene Methoden. Teste jede Methode einzeln, bis sie tut, was sie soll.
 
Wollte mal testen wie ich am besten das exklusive Oder darstellen kann
Die Ergebnisse waren wie folgt:

Ergebnisse sollten sein(Stop)
boolstart=true;
boolend=true;
1-Stop
2-Stop
3-Start
4-Stop

Ergebnisse sollten sein(Reset)
boolstart=false;
boolend=true;
1-Reset
2-Reset
3-logischer Fehler Nr.2
4-Reset

Ergebnisse sollten sein(Start)
boolstart=true;
boolend=false;
1-Start
2-Start
3-logischer Fehler Nr.2
4-Start

Ergebnisse sollten sein(Fehler || nichts)
boolstart=false;
boolend=false;
1-logischer Fehler
2-logischer Fehler Nr.2
3-logischer Fehler Nr.2
4-Stop
Java:
package boolTest;
public class TimeChecker {
    public boolean boolend;
    public boolean boolstart;
    
    public TimeChecker() {
        //komplett korrekt gehandelt
        if(boolstart==true && boolend==true) {
            //stop
            System.out.println("1-Stop");
        }else if(boolstart==true && boolend==false) {
            //start
            System.out.println("1-Start");
        }else if(boolstart==false && boolend==true) {
            //reset
            System.out.println("1-Reset");
        }else {
            System.out.println("1-logischer Fehler");
        }
        //:::::::::::::::::::::::::::::::::::::::::::
        //komplett korrekt gehandelt
        if(boolstart ^ boolend) {
            if(boolstart) {
                //start
                System.out.println("2-Start");
            }else if(boolend){
                //reset
                System.out.println("2-Reset");
            }else {
                System.out.println("2-logischer Fehler");
            }
        }else if(boolstart && boolend){
            //stop
            System.out.println("2-Stop");
        }else {
            System.out.println("2-logischer Fehler Nr.2");
        }
        //:::::::::::::::::::::::::::::::::::::::::::::::
        //anstatt stop kommt start
        //reset wird zum logischen fehler
        //start wird zum logischen fehler 2
        //fehler aber korrekt erkannt
        if(boolstart && boolend) {
            if(boolstart) {
                //start
                System.out.println("3-Start");
            }else if(boolend){
                //reset
                System.out.println("3-Reset");
            }else {
                System.out.println("3-logischer Fehler");
            }
        }else if(boolstart && boolend){
            //stop
            System.out.println("3-Stop");
        }else {
            System.out.println("3-logischer Fehler Nr.2");
        }
        //:::::::::::::::::::::::::::::::::::::::::::::::
        //fast komplett korrekt
        //aus dem Fehler wurde Stop
        if(boolstart==boolend) {
            //stop
            System.out.println("4-Stop");
        }else if(!boolstart && boolend) {
            //reset
            System.out.println("4-Reset");
        }else if(boolstart && !boolend) {
            //start
            System.out.println("4-Start");
        }else {
            System.out.println("4-logischer Fehler");
        }
    }
    public static void main(String[] args) {
        new TimeChecker();
    }
}
 
Zuletzt bearbeitet:

berndoa

Top Contributor
leider hatte ich noch keine arrays...deshalb kann ich es so wahrscheinlich nicht schreiben. Aber trotzdem danke für deine hilfe :) und bei der ausgabe hat mein prof ja hingeschrieben muss i.wo das System.out.print(booleanvariable)hin:(
Du kannst auch einfahc die beiden forschleifen von 0 bis 1 gehen lassen, dann spielst du eben direkt mit i und j deine fälle durch :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
U geschachtelte if-Schleife Java Basics - Anfänger-Themen 15
P geschachtelte Schleife mit Strings Java Basics - Anfänger-Themen 2
P geschachtelte for schleife Java Basics - Anfänger-Themen 3
B Arrays/Geschachtelte For-Schleife Fehler Java Basics - Anfänger-Themen 8
W Geschachtelte for-schleife beenden Java Basics - Anfänger-Themen 2
R Geschachtelte For schleife Java Basics - Anfänger-Themen 9
M geschachtelte for-Schleifen - Einmaleins ausgeben Java Basics - Anfänger-Themen 3
K geschachtelte "for-Schleifen" Java Basics - Anfänger-Themen 3
E geschachtelte for-schleifen Java Basics - Anfänger-Themen 6
O Array, geschachtelte For-Schleifen Java Basics - Anfänger-Themen 34
A Klassen Geschachtelte Klassen - Hat das Objekt dann beide Klassen? Java Basics - Anfänger-Themen 4
O Geschachtelte For-Schleifen Java Basics - Anfänger-Themen 1
D Textdatei in geschachtelte Array speichern Java Basics - Anfänger-Themen 17
S geschachtelte schleifen Java Basics - Anfänger-Themen 5
J Geschachtelte If-Else Anweisung Java Basics - Anfänger-Themen 6
L Geschachtelte Konstruktoren Java Basics - Anfänger-Themen 4
G Geschachtelte ArrayListen Java Basics - Anfänger-Themen 27
B Geschachtelte Klassen Java Basics - Anfänger-Themen 2
H Geschachtelte Liste Java Basics - Anfänger-Themen 4
S kask./geschachtelte if-anweisung Java Basics - Anfänger-Themen 5
N geschachtelte ausgabe einer zeichenkette Java Basics - Anfänger-Themen 5
R Best Practice Problem mit (einfacher) Doppelt-Schleife Java Basics - Anfänger-Themen 53
C Abbruch einer Schleife mit break, meine Übung funktioniert nicht richtig Java Basics - Anfänger-Themen 4
C Erste Schritte While-Schleife Java Basics - Anfänger-Themen 3
M While-Schleife mit Wartezeit Java Basics - Anfänger-Themen 15
T Ich brauche eine Schleife die eine beliebige Zahl so lange durch 10 teilt bis zur Null Java Basics - Anfänger-Themen 5
DrahtEck Schleife soll wieder da anfangen wo ich es möchte ! Java Basics - Anfänger-Themen 17
Finn_lol Fehlermeldung bei Schleife mit Array Java Basics - Anfänger-Themen 4
Ranger229 Endless loop in while Schleife Java Basics - Anfänger-Themen 3
MaZ Quadrat Schleife(Pyramide) Java Basics - Anfänger-Themen 9
M Datentypen While-Schleife eine Java Methode erstellen Java Basics - Anfänger-Themen 3
P Wie kann diese Schleife beenden Java Basics - Anfänger-Themen 1
T float soll durch schleife die größte mögliche Zahl herausfinden, Ausgabe ist aber "Infinity" Java Basics - Anfänger-Themen 1
T Variable in Schleife deklarieren, Speicherplatz, Garbage Collector Java Basics - Anfänger-Themen 10
Ostkreuz While Schleife neustarten Java Basics - Anfänger-Themen 20
S Verschachtelte for-Schleife Java Basics - Anfänger-Themen 2
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
laxla123 Verschachtelte If-Else Schleife Java Basics - Anfänger-Themen 21
S Erste Schritte do-while Schleife Münzwurf Java Basics - Anfänger-Themen 1
S while Schleife Taschenrechner Java Basics - Anfänger-Themen 1
P Best Practice While loop schleife Java Basics - Anfänger-Themen 5
ohneInformatik; For Schleife. Was macht dieser Code?? Java Basics - Anfänger-Themen 5
I For Schleife Summe berechnen Java Basics - Anfänger-Themen 13
A Erste Schritte Aufgabe mit while Schleife Java Basics - Anfänger-Themen 11
R do while Schleife Verständnisfrage Java Basics - Anfänger-Themen 2
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
N Warum Springt iterator nur in der Schleife weiter Java Basics - Anfänger-Themen 9
J for Schleife kleinste Zufallszahl finden Java Basics - Anfänger-Themen 25
A Return in While Schleife Java Basics - Anfänger-Themen 6
M Erste Schritte While Schleife / Ausgabe von buchstabe & ASCII Wert Java Basics - Anfänger-Themen 4
J do..while Schleife Java Basics - Anfänger-Themen 14
J Java To String Methode, Array mit For-Schleife Java Basics - Anfänger-Themen 2
S Textausgabe in einer For-Schleife Java Basics - Anfänger-Themen 12
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
C 2D Array Ausgabe mit for-Schleife i,j Java Basics - Anfänger-Themen 4
T Mit jedem Wert in der for-Schleife weiter arbeiten Java Basics - Anfänger-Themen 3
berserkerdq2 Warum muss man manchmal in der RUnmethode sleep in eine schleife tun? Java Basics - Anfänger-Themen 9
F for-Schleife halbiert Durchläufe ungewollt Java Basics - Anfänger-Themen 6
ravenz Schleife mit for über String Array „zahlen“und prüfen ob Wert „a“ oder „b“ oder „c“ entspricht (mittels || ) Java Basics - Anfänger-Themen 4
Bugs Bunny Fehlerhafte Berechnung beim erneuten Durchlaufen der Schleife Java Basics - Anfänger-Themen 5
J Methoden iterator for-schleife (hasNext() ) Java Basics - Anfänger-Themen 7
S Was macht ++ ohne Schleife? Java Basics - Anfänger-Themen 4
LFB In einer For-Schleife alles in einer Zeile ausgeben Java Basics - Anfänger-Themen 14
Neuling47 for schleife Java Basics - Anfänger-Themen 6
M Variable in einer Schleife initialisieren Java Basics - Anfänger-Themen 46
B Zuweisungen und Methodenaufrufe in Bedingung der while Schleife? Java Basics - Anfänger-Themen 2
JavaBeginner22 Würfeln bis 6 while Schleife Java Basics - Anfänger-Themen 13
D EinMalEins mithilfe einer for-Schleife und Array Java Basics - Anfänger-Themen 1
xanxk Problem For-Schleife mit Charakter Java Basics - Anfänger-Themen 2
W Schleife und einmal variable++ zu viel Java Basics - Anfänger-Themen 20
sgtcoopa Array übergeben Schleife Java Basics - Anfänger-Themen 0
T Mäxchenspiel mit Schleife Java Basics - Anfänger-Themen 3
D try/catch-Block bei for-Schleife Java Basics - Anfänger-Themen 14
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
J Schleife Problem Java Basics - Anfänger-Themen 2
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
L while Schleife mit 2 Bedingung endet nicht Java Basics - Anfänger-Themen 3
stormyark 4 Bit in einer for-schleife funktioniert nicht Java Basics - Anfänger-Themen 3
M ArrayList mit einer Schleife befüllen Java Basics - Anfänger-Themen 2
K Schleife berechnet kein Ergebnis (Vererbung) Java Basics - Anfänger-Themen 6
S Sentinel-Schleife Java Basics - Anfänger-Themen 0
D Array mit while-schleife Java Basics - Anfänger-Themen 12
Kiki01 Wie würde eine geeignete Schleife aussehen, die die relative Häufigkeit für jeden Charakter in einem Text bestimmt? Java Basics - Anfänger-Themen 3
P9cman Vokal Zähler mit switch case und for-Schleife Java Basics - Anfänger-Themen 4
B do while Schleife Java Basics - Anfänger-Themen 3
I Fehler bei for-Schleife Java Basics - Anfänger-Themen 6
S Mit for-Schleife ein 2D JLabel-Array mit veränderbaren Icons erstellen Java Basics - Anfänger-Themen 3
D Codeverständis For-Schleife Java Basics - Anfänger-Themen 4
SergioCK Do while Schleife wiederholen Java Basics - Anfänger-Themen 14
M For-Schleife Java Basics - Anfänger-Themen 20
el_pato DialogFenster wird nicht in Schleife geöffnet? Java Basics - Anfänger-Themen 30
J if-Schleife innerhalb einer if-Schleife wird in der Konsole nicht gelesen Java Basics - Anfänger-Themen 4
EinNickname9 Denkfehler bei einfacher Schleife Java Basics - Anfänger-Themen 83
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
S Array mit for-Schleife besetzen Java Basics - Anfänger-Themen 7
CptK For-Schleife in Thread nach jedem Durchlauf pausieren Java Basics - Anfänger-Themen 35
M for schleife ohne geschweifte Klammer Java Basics - Anfänger-Themen 15
H For-Schleife bis Index von Eingabe laufen lassen Java Basics - Anfänger-Themen 24
Informatikf Methoden While Schleife Java Basics - Anfänger-Themen 3
M While Schleife? Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben