# Modulo Operator



## Samurai88 (7. Jun 2011)

Halloa!!!
wenn ich folgendes gegeben habe..
[Java]for (int i = 0; i < 20; i++) {
if (i % 10 == 0) {						
     wert = 0;
    }
}[/Java]

Heisst das solange der rest 0 ist soll er die variable "wert" gleich null setzen. Wird immer der rest mit der Null verglichen?
was ist denn wenn i z.B. 6 ist.


----------



## XHelp (7. Jun 2011)

Mach doch 
	
	
	
	





```
System.out.println(6%10)
```
 :bahnhof: Dann siehst du es selber
Und es sollte heißen "WENN" rest 0 ist, dann... (nicht solange)
Im Grunde heißt es: jeden 10. Schritt setzt du den 
	
	
	
	





```
wert
```
 auf 0


----------



## nrg (7. Jun 2011)

wenn 
	
	
	
	





```
i == 6
```
, ergibt 
	
	
	
	





```
i % 10 == 0
```


```
false
```
, weil 6 nicht durch 10 teilbar ist


----------



## Samurai88 (7. Jun 2011)

danke für die antwort.


----------



## Dekker (7. Jun 2011)

Samurai88 hat gesagt.:


> Wird immer der rest mit der Null verglichen?



Ne, die jvm überlegt sich immer zufällig was sie beim nächsten Befehl macht. Und wenn sie mal keine Lust hat vergleicht sie auch mal gar nichts. :lol:


----------



## HoaX (7. Jun 2011)

Edit: Unfug, verlesen.


----------



## Landei (7. Jun 2011)

@Dekker: Hast du zuviel INTERCAL programmiert?


----------



## Samurai88 (7. Jun 2011)

boah du bist ja cool Dach Dekker ...


----------



## Andi_CH (7. Jun 2011)

Versuch es so - dann siehst du was abläuft.


```
public static void main(String[] args) {
		int wert = -666;
		for (int i = 0; i < 20; i++) {
			wert = i;
			if (i % 10 == 0) {                      
				wert = 0;
			}
			System.out.println("i = " + i + ", i%10 = " + (i % 10) + ", wert = " + wert);
		}
	}
```

Ausgabe:

```
i = 0, i%10 = 0, wert = 0
i = 1, i%10 = 1, wert = 1
// Zeilen gelöscht
i = 9, i%10 = 9, wert = 9
i = 10, i%10 = 0, wert = 0
i = 11, i%10 = 1, wert = 11
// Zeilen gelöscht
i = 18, i%10 = 8, wert = 18
i = 19, i%10 = 9, wert = 19
```


----------

