Modulo (%) und ==

Status
Nicht offen für weitere Antworten.
B

BladeNeo

Gast
Guten Abend,

kann mir bitte jemand folgende Zeile erklären:

if ((i+1)%10 == 0) System.out.println();

es geht um ein Array das mit einer for - Schleife Werte (0-39) einließt und diese ausgibt.
Die Werte sollen folgendermaßen ausgegeben werden:

0 1 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19

20 21 22 23 24 25 26 27 28 29

30 31 32 33 34 35 36 37 38 39

So stimmt es auch, jedoch verstehe ich die Zeile nicht.

wenn die Laufvariable i + 1 / 10 vergleiche mit 0 ist.. soll eine Zeile entstehen.
Jedoch: 9(i) +1 = 10 / 10 = 1 1 == 0 ist doch false also sollte keine Zeile entstehen, oder?
Beispiel mit 10
10(i) +1 = 11 / 10 = 1,1 1,1==0 ist doch auch false!??

Danke schonmal im Vorraus.

Mit freundlichen Grüßen,
BladeNeo
 

el_barto

Bekanntes Mitglied
Code:
if (a%b == 0) {
    // mach was
}

heißt nicht, dass das ergebnis der gleichung mit 0 verglichen wird, sondern der rest!!! modulo funktion, wie du ja auch in deinem titel bereits bemerkt hast!
 
B

BladeNeo

Gast
Abend,

Danke erstmal für die Antwort.
sry versteh ich aber net ganz.
ok 10 %(und) 10 ist == gleich
aber wieso == 0??? wozu die Null
und bei 20 stimmts ja dann wieder nicht weil
20 % (und) 10 ist == nicht gleich!!

oder zählt er aber 10 wieder neu.. da es ja eine schleife ist.. wenn ja dann verstehe ich alles ausser dass mit der 0 (Null).

MfG,
BladeNeo
 

el_barto

Bekanntes Mitglied
0%10 ergibt 0 rest 0 // mach was
1%10 ergibt 0 rest 1 // mach nix
2%10 ergibt 0 rest 2 // mach nix
3%10 ergibt 0 rest 3 // mach nix
...
8%10 ergibt 0 rest 8 // mach nix
9%10 ergibt 0 rest 9 // mach nix
10%10 ergibt 1 rest 0 // mach was
...
 
G

Guest

Gast
???
ich finde den moduloperator irgendwie unlogisch :roll:


meiner meinung nach ist der rest von " 1 % 10 = 0 " und nicht 1...
ein beispiel für rest 1 ist : " 22 % 7 = 1 "


oder verstehe ich da was falsch???
 

Campino

Top Contributor
Alles was ich jetzt sage, wurde schon mal gesagt, aber vielleicht krieg ichs ja klarer :wink: :

:arrow: Der Operator / liefert das ergebnis das beim Teilen der beiden Zahlen rauskommt. Also:

10 / 2=5 (heißt dann: 10 geteilt durch 2 gleich 5)

:arrow: Der modulo Operator gibt den rest aus:

10 % 2=0 (heißt dann: Wenn man 10 durch 2 teilt, aber kein Bruch entstehen darf, bleibt 0 übrig)

13 % 2 = 1 (heißt dann: Wenn man 13 durch 2 teilt, aber kein Bruch entstehen darf, bleibt 1 übrig)


:arrow: Deine if-Abfrage vergleicht nun das ergebnis aus der Rechnung mit 0, und gibt bei gleichheit einen Zeilenumbruch aus...

Wenn das Ergebnis von 10%2 gleich 0 ist, dann gebe einen Zeilenumbruch aus

oder in Java:

if(10%2 ==0) system.out.println();

:arrow: Dann der, mit dem du Probleme hattest:

1 % 10 = 1 (Wenn man 1 durch 10 teilt, und kein Bruch entstehen darf, bleibt 1 über)

1/10 = 0.1, es geht also nicht glatt, und deshalb bleibt etwas über (der Rest ist also nicht 0), die nächst kleinere Zahl, die durch 10 teilbar ist, ist 0 (bzw. garnicht vorhanden... Wie man will), der Rest ist dann Anfangszahl - nächst kleinere teilbare Zahl, dass entspricht 1-0 und das ist nunmal 1...

na ist dir ein Licht aufgegangen :idea:





:arrow: Nicht etwa, daß bei größerer Verbreitung des Einblickes in die Methode der mathematischen Operatoren notwendigerweise viel mehr Kluges gesagt würde als heute, aber es würde sicher viel weniger Unkluges gesagt. :wink:
 

Tobias

Top Contributor
Auch wenn ich nur Gesagtes wiederhole:

Der Modulo macht Folgendes:

1 / 10 = 0.1 -> Nachkommastellen abschneiden = 0 -> Ergebnis vom Divisor abziehen 1 - 0 = 1 -> Ergebnis zurückliefern.

Völlig logisch.

mpG
Tobias
 

citizen_erased

Bekanntes Mitglied
0%10=0
1%10=1
2%10=2
3%10=3
4%10=4
5%10=5
6%10=6
7%10=7
8%10=8
9%10=9
10%10=0
11%10=1
12%10=2
13%10=3
14%10=4
15%10=5
16%10=6
17%10=7
18%10=8
19%10=9
20%10=0
21%10=1
22%10=2
23%10=3
24%10=4
25%10=5
26%10=6
27%10=7
28%10=8
29%10=9
30%10=0
31%10=1
32%10=2
33%10=3
34%10=4
35%10=5
36%10=6
37%10=7
38%10=8
39%10=9
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Rechenoperationen mit Modulo Java Basics - Anfänger-Themen 2
B Modulo-Operator anhand eines Beispieles erklären Java Basics - Anfänger-Themen 7
s.marcii Modulo in der Variable einsetzen - ist das möglich? Java Basics - Anfänger-Themen 2
A Modulo operation Java Basics - Anfänger-Themen 5
A Char und modulo Java Basics - Anfänger-Themen 8
C Verständnisfrage zu Modulo Java Basics - Anfänger-Themen 6
T Modulo / Pow berechnen Java Basics - Anfänger-Themen 4
F Switch Case Modulo berechnen Java Basics - Anfänger-Themen 12
krgewb Best Practice Modulo Java Basics - Anfänger-Themen 4
L Rekursion Modulo Java Basics - Anfänger-Themen 7
W Input/Output Modulo Wert speichern und ausgeben lassen Java Basics - Anfänger-Themen 3
S Operatoren Modulo programmieren Java Basics - Anfänger-Themen 10
V Andere Schreibweise für % Modulo Java Basics - Anfänger-Themen 9
N Methoden Modulo Operator Java Basics - Anfänger-Themen 1
D Brauche Hilfe bei Modulo (Übungsaufgabe) Java Basics - Anfänger-Themen 14
L Modulo Reste abspeichern und wiedergeben ? Java Basics - Anfänger-Themen 4
Z 10er und 100er Stelle durch Modulo Java Basics - Anfänger-Themen 2
H Buch: Java lernen mit BlueJ Modulo-Operator Java Basics - Anfänger-Themen 16
J for-schleife + modulo Java Basics - Anfänger-Themen 2
E Problem mit modulo Rechnung Java Basics - Anfänger-Themen 8
S Modulo Operator Java Basics - Anfänger-Themen 8
R Merkwürdige Modulo Berechnung Java Basics - Anfänger-Themen 7
E Potenz mit Modulo (über for-Schleife) berechnen Java Basics - Anfänger-Themen 8
J modulo Java Basics - Anfänger-Themen 13
R Ersatz für Modulo Operator Java Basics - Anfänger-Themen 8
H Typ short: Exponent und Modulo Java Basics - Anfänger-Themen 3
W Modulo rechnen Java Basics - Anfänger-Themen 3
calzone Problem einer Gleichung mit Modulo Java Basics - Anfänger-Themen 5
A Problem mit modulo Java Basics - Anfänger-Themen 8
J statt modulo "if-Anweisung" Java Basics - Anfänger-Themen 9
J Modulo berechnen Java Basics - Anfänger-Themen 11
S Modulo Java Basics - Anfänger-Themen 10
D BigInteger potenzieren und anschließend Modulo Java Basics - Anfänger-Themen 7
G SHA (byte array) per modulo hashen Java Basics - Anfänger-Themen 6
G Modulo Java Basics - Anfänger-Themen 4
J Modulo-Operator rechnet falsch Java Basics - Anfänger-Themen 2
Safado modulo rechnen Java Basics - Anfänger-Themen 5
S Modulo-Operator Java Basics - Anfänger-Themen 5
H Modulo rechnen Java Basics - Anfänger-Themen 17
G Modulo Division funzt nicht Java Basics - Anfänger-Themen 3
G BigInteger und Modulo Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben