Ausgabe boolean return ((n==9)||(n==0));

C.B.

Aktives Mitglied
Hallo zusammen,


ich habe einen Code und versuche die Ausgaben nachzuvollziehen. Ich verstehe alle Ausgaben außer die false und true Ausgaben. Die Methode check gibt bei n <= 10 n==0 oder n==9 als boolean zurück. Laut den Ausgaben wir erst false zurückgegeben und dann true und dann immer abwechselnd. Die Anweisung in der check Methode lautet: return ((n==9)||(n==0));

Wieso wird erst false zurückgegeben und dann true und dann immer abwechselnd? Liegt es daran das die Variable b anfangs nicht initialisiert ist und den default wert false gespeichert hat und wird dann abwechselnd false und true zurückgegeben wegen der ODER Anweisung?

Vielen Dank.

Die Ausgaben lauten:
Checking 3
false
Checking 18
true
Checking 2
false
Checking 108
true
Checking -1
Diese Zahl mag ich nicht
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at Analyse.main(Analyse.java:14)


Der Code lautet:

Java:
public class Analyse {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        int[]array = new int[] {3,18,2,108,-1};
        int i =0;
        boolean b;
        Analyse a = new Analyse();
                
        while (i<=5) {
            try {
                b=a.check(array[i]);
                System.out.println(b);
            }
            catch (IllegalArgumentException e) {
                System.out.println(e.getMessage());
            }
            i=i+1;
            }
        }
    
    
    public boolean check(int n) {
        System.out.println("Checking "+n);
        while(n>10) {
            int m = n%10;
            do {
                n/= 10;
                m+= n%10;
            } while(n>0);
            n=m;
        }
        if(n<=0) throw new IllegalArgumentException ("Diese Zahl mag ich nicht");
        return ((n==9)||(n==0));
        }
    
    public boolean check2(int n) {
        return check(n*n);
            }
        }
 

fhoffmann

Top Contributor
Hast du den Sinn dieser Schleifen verstanden?
Java:
        while(n>10) {
            int m = n%10;
            do {
                n/= 10;
                m+= n%10;
            } while(n>0);
            n=m;
        }
Was wird hier berechnet?
 

C.B.

Aktives Mitglied
Hast du den Sinn dieser Schleifen verstanden?
Java:
        while(n>10) {
            int m = n%10;
            do {
                n/= 10;
                m+= n%10;
            } while(n>0);
            n=m;
        }
Was wird hier berechnet?
also bei n =3 wird hier gar nicht reingesprungen. Dann wird direkt zu dieser Anweisung übergegangen:
return ((n==9)||(n==0));

und n hat ja noch den Wert 3. Wieso wird dann false ausgegeben?

Bei n = 18 wird in die while Schleife n> 10 gesprungen.
Außerhalb der do/while schleife kommt raus: int m = 18%10= 8
innerhalb der doSchleife:
dann n=18/10=1
dann m=8+(1%10)=8+1=9;
dann wird n=m zugewiesen also n hat den wert 9.

n ist dann kleiner als 10 deswegen wird die obere while schleife nicht mehr ausgeführt. Dann hat n den wert 9 und es wird true ausgegeben, da return ((n==9)||(n==0));

Richtig?

Aber wie kommt bei n =3, false raus? bzw. dann der Wert 0 für n=3?
 

kneitzel

Top Contributor
Wenn n = 3 ist:
Ist n dann gleich 9? (n == 9)
Oder ist n gleich 0? (n == 0)

Oder der Ausdruck sprachlich ausgedrückt ist die Frage hier doch: Ist n gleich 9 oder ist n gleich 0?
Und bei n = 3 ist da was die Antwort?
 

C.B.

Aktives Mitglied
Also ist die Antwort doch einfach: nein (Sprich: false).
Oke verstanden .. also wenn n=3 ist dann ist es keines von beiden, weil es nicht 9 und nicht 0 entspricht und dann wird false zurückgegeben.
Bei n=9, entspricht n==9, daher wird true zurückgegeben.

Und wenn n=0 ist dann entspricht ja n==0, dann wird auch true zurück gegeben?
 

mihe7

Top Contributor
Oke verstanden .. also wenn n=3 ist dann ist es keines von beiden, weil es nicht 9 und nicht 0 entspricht und dann wird false zurückgegeben.
Bei n=9, entspricht n==9, daher wird true zurückgegeben.

Und wenn n=0 ist dann entspricht ja n==0, dann wird auch true zurück gegeben?

Wertetabelle für ODER (OR, in Java per ||-Operator):

Aussage1Aussage2Aussage1 ODER Aussage2
falschfalschfalsch
falschwahrwahr
wahrfalschwahr
wahrwahrwahr
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Ausgabe mit boolean Java Basics - Anfänger-Themen 3
B Ausgabe eines boolean wertes Java Basics - Anfänger-Themen 10
S Ausgabe des Variablenwerts Java Basics - Anfänger-Themen 10
I Ausgabe nicht nur senkrecht sondern auch waagerecht. Java Basics - Anfänger-Themen 2
paulen1 Methoden Unerwünschte Ausgabe bei System.out.print in For-Schleife Java Basics - Anfänger-Themen 8
F Double Ausgabe nicht wissenschaftlich Java Basics - Anfänger-Themen 16
danieldemetry Java - Graph Komponenten - Ausgabe Java Basics - Anfänger-Themen 0
S Fragen zu Ausgabe double und float Java Basics - Anfänger-Themen 3
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
D BigDecimal Ausgabe sehr lang. Java Basics - Anfänger-Themen 2
J String Ausgabe Java Basics - Anfänger-Themen 2
TimoN11 IntelliJ , Ausgabe von einem Quellcode in Eingabe eines Quellcodes Java Basics - Anfänger-Themen 1
Kalibru Problem bei Ausgabe von Objekt Java Basics - Anfänger-Themen 1
KogoroMori21 Array-Ausgabe Java Basics - Anfänger-Themen 6
JaVaN0oB Wörterraten - Falsche Ausgabe, String/Chars vergleichen Java Basics - Anfänger-Themen 2
E Ausgabe überschreiben Java Basics - Anfänger-Themen 15
D Ausgabe von Array Java Basics - Anfänger-Themen 2
U Ausgabe Java Basics - Anfänger-Themen 4
J Buchstabenhäufigkeit mit Array und Ausgabe des häufigsten Buchstaben Java Basics - Anfänger-Themen 25
V Multiplikationstafel - Ausgabe Java Basics - Anfänger-Themen 4
L Warum ist die Ausgabe anders als das was im Bezeichner steht? Java Basics - Anfänger-Themen 4
M In gleicher zeile hinter ausgabe noch etwas ausgeben Java Basics - Anfänger-Themen 1
newcomerJava Nach doppelter Zahl eine Ausgabe Java Basics - Anfänger-Themen 10
H Falsche Ausgabe Java Basics - Anfänger-Themen 2
P Klassenübergreifende Ausgabe mittels "getter" nicht möglich Java Basics - Anfänger-Themen 21
R Call-by-Value, Call-by-Reference, Call-by-Name Ausgabe Java Basics - Anfänger-Themen 1
JavaClap "Bruchrechner" liefert Fehler/keine Ausgabe bei Addition und Subtraktion Java Basics - Anfänger-Themen 0
D Warum erfolgt folgende Ausgabe und warum? Java Basics - Anfänger-Themen 4
C Ausgabe in der Konsole Java Basics - Anfänger-Themen 11
M Problem bei Ausgabe Java Basics - Anfänger-Themen 7
C Konvertierung des int typs in den double typ für die Ausgabe mit Nachkommastellen Java Basics - Anfänger-Themen 4
K Probleme bei der Ausgabe - komme nicht weiter :/ Java Basics - Anfänger-Themen 15
G Problem bei der Ausgabe einer Main Claase Java Basics - Anfänger-Themen 7
Y Methode + Parameters + Ein und Ausgabe Java Basics - Anfänger-Themen 1
K Methodenaufruf /-ausgabe Java Basics - Anfänger-Themen 5
A Wiederholte Ausgabe vermeiden Java Basics - Anfänger-Themen 16
B Collections Objektreferenz-ID in der Ausgabe (Comparator Interface) Java Basics - Anfänger-Themen 2
M Wie analysiert JSON eine toString-Ausgabe ? Java Basics - Anfänger-Themen 1
T Vererbung Verschiedene Fahrzeugtypen mit unterschiedlicher Ausgabe Java Basics - Anfänger-Themen 17
T Ausgabe einer for Schleife Java Basics - Anfänger-Themen 2
S Elemente eines Arrays bei Ausgabe auslassen Java Basics - Anfänger-Themen 2
M Ausgabe einer Liste welche mehrere Stacks enthält Java Basics - Anfänger-Themen 3
T Text-Ausgabe für Textadventure - Organisation Java Basics - Anfänger-Themen 5
G Unterklassen (Klasse für Ausgabe) Java Basics - Anfänger-Themen 4
N Eingabe des Users direkt hinter die Ausgabe Java Basics - Anfänger-Themen 3
J Methode zur Ausgabe eines Dreiecks aus Sternen schreiben? Java Basics - Anfänger-Themen 2
ZH1896ZH Wieso diese Ausgabe?? Java Basics - Anfänger-Themen 10
J Fragen zum Code aus dem Buch "Schrödinger programmiert Java 2.te Ausgabe" Java Basics - Anfänger-Themen 6
B Keine Ausgabe .. Woran liegt das? Ich komme nicht weiter Java Basics - Anfänger-Themen 14
K Rechtsbündige Ausgabe von Zahlen Java Basics - Anfänger-Themen 6
V Erste Schritte for-Schleife; Ausgabe soll alle 5 Sekunden erfolgen. Java Basics - Anfänger-Themen 4
X Threads Zwei Threads, aber doppelte Ausgabe verhindern (synchronized) Java Basics - Anfänger-Themen 54
J Ausgabe Gesamtpreis Java Basics - Anfänger-Themen 39
E Variablen in formatierter Ausgabe Java Basics - Anfänger-Themen 15
B HQL / Hibernate, GroupBy und Ausgabe als Double Java Basics - Anfänger-Themen 1
J StrinBuffer in der Ausgabe Java Basics - Anfänger-Themen 4
H ausgabe? Java Basics - Anfänger-Themen 32
B Ausgabe Zahlenreihe Horizontal Java Basics - Anfänger-Themen 3
V Neue Ausgabe von toString nach Methodenaufruf Java Basics - Anfänger-Themen 9
N Wochentagberechner Ausgabe funktioniert nicht Java Basics - Anfänger-Themen 7
K Array Ausgabe Java Basics - Anfänger-Themen 2
L Datentypen Ausgabe von eigenem Datentypen Java Basics - Anfänger-Themen 2
C 1x1 Ausgabe auf dem Bildschirm Java Basics - Anfänger-Themen 3
L Fehler im Programm bei Ausgabe Java Basics - Anfänger-Themen 21
J Doppelte Ausgabe erzeugen Iterator Java Basics - Anfänger-Themen 6
F Warum ist die Ausgabe hier 1? Java Basics - Anfänger-Themen 4
Bun17 Keine Ausgabe in der Konsole Java Basics - Anfänger-Themen 2
H Ausgabe Java Basics - Anfänger-Themen 6
U Ausgabe von Dateiinhalt während Programmnutzung fehlerhaft Java Basics - Anfänger-Themen 3
Jackii ArrayList ausgabe ohne Dopplung Java Basics - Anfänger-Themen 11
F Erste Schritte Subnet Calculator - Ausgabe der NetID und der Broadcast Java Basics - Anfänger-Themen 4
D Wiederholende Ausgabe Java Basics - Anfänger-Themen 3
G Exception und Ausgabe der Duplikate Java Basics - Anfänger-Themen 6
A Datei Ein und Ausgabe FileWriter und printWriter Java Basics - Anfänger-Themen 5
S Doppel For Schleife mit Arrays - Problem bei der Ausgabe Java Basics - Anfänger-Themen 4
A Erste Schritte Ausgabe eines compare Programms Java Basics - Anfänger-Themen 4
I Input/Output System.out Ausgabe aktualisieren, ohne Konsole vollzuspamen Java Basics - Anfänger-Themen 2
D Input/Output ArrayList ausgabe Java Basics - Anfänger-Themen 4
B toString mit optionaler Ausgabe überrschreiben Java Basics - Anfänger-Themen 5
D Auswahl und Ausgabe erstes Programm Java Basics - Anfänger-Themen 8
I Ausgabe von Arrays Java Basics - Anfänger-Themen 2
W Wie lasse ich meine Ausgabe nach dem Lesen verschwinden ? Java Basics - Anfänger-Themen 1
karlmasutra Ausgabe in ein Array schreiben Java Basics - Anfänger-Themen 14
L Scanner Ausgabe Java Basics - Anfänger-Themen 37
L Input/Output Wieso kommt diese Ausgabe? Java Basics - Anfänger-Themen 12
G Methode liefert "Min@15db9742" als Ausgabe Java Basics - Anfänger-Themen 2
S Vergleich zweier ArrayLists mit Ausgabe an dritte ArrayList Java Basics - Anfänger-Themen 5
S While-Schleifen Ausgabe als String? Java Basics - Anfänger-Themen 1
T Input/Output Leerzeilen in Ausgabe -> finde den Fehler nicht Java Basics - Anfänger-Themen 10
L Reihenfolge Ausgabe Java Basics - Anfänger-Themen 5
L Variablen CharArray Ausgabe - Buchstabensalat Java Basics - Anfänger-Themen 5
T Vergleich und Ausgabe von Zahlen Java Basics - Anfänger-Themen 1
M Ausgabe einer kleinen Aufgabe Java Basics - Anfänger-Themen 2
N Datei Zeilenweise einlesen, Ausgabe mehrere Arrays Java Basics - Anfänger-Themen 7
O Ausgabe als .txt Datei speichern mit FileWriter Java Basics - Anfänger-Themen 2
M Erste Schritte Doppelte Ausgabe? (JList) Java Basics - Anfänger-Themen 1
Henri Die Ausgabe stimmt leider nicht Java Basics - Anfänger-Themen 9
D Array Ausgabe Java Basics - Anfänger-Themen 2
TomatenBrot447 Mit toString eine Ausgabe liefern wie in einer schon implementierten Methode ? Java Basics - Anfänger-Themen 13
TomatenBrot447 Mit toString eine Ausgabe liefern wie in einer schon implementierten Methode ? Java Basics - Anfänger-Themen 1

Ähnliche Java Themen


Oben