Kann mir jmd dies erklären?

Berta

Mitglied
hallo forum,

ich hätte 2 fragen und zwar verstehe ich nicht, wieso dies so ist, vllt kann mir jmd helfen, es ist nicht sonderlich schwer.

also ich hab folgendes:

Java:
 class Loop2 { 

 public static void main(String[] args) { 
 int x = 2; 
 for(int i = 5; i <= 21; i = i + 3) { 
 x = x + 2; 
 } 
 System.out.println("x = " + x); 
 
 } 
 }

kann mir jmd erklären, warum bei dem code für x 14 auf der konsole angezeigt wird?


Java:
class Maximum {
	public static void main(String[] args) {
		int	[] values = {12,9,13,27,58,33,25,14,40,70,89,73};
		
		int max=0;
		
		int n=0;
		
		
		for( int i=0; i < values.length; i++)
		{
		
			if( max < values[i] )
			{
				max=values[i];
				n=i;
			}
		}
		
		System.out.println("Maximum" + max);
		System.out.println("Index" + n);
		
		
	}
}

bei den code verstehe ich nicht, wie java jetzt das maximum aus dem values array findet. ich hab ne for schleife, welche das array durchgeht, in der 10. zeile steht i < values.length; i++, das i++ verstehe ich, aber so genau was i < values.length; bedeutet, nicht. also java geht wohl durch das array, aber wie er dadurch das maximum rauskriegt, liegt an der if zeile. wenn max< als ein wert ausm array ist, wieso hat man dann das maximum? und wie checkt das java? das leuchtet mir nicht so recht ein. max mus eig. doch größer sein. man kanns auch umgekehrt aufschreiben, da verstehe ichs auch nicht so recht.


ich hoffe ich hab nicht zu viel geschrieben und es ist nicht zu sehr kompliziert.


danke
 
M

Marcinek

Gast
1) Überlegmal wann die schleife los geht. Bis wohin sie geht und in welchen schritten das passiert.

Dann Kann man sich überlegen wie oft wird x = x + 2 ausgeführt?

2) array.lenth gibt die länge des Arrays an.

Und dann wird verglichen ob der aktuelle max wert nicht durch eine andere zahl übertroffen wird.

Ansonsten musst du dir mal durchlesen, was < > und = bedeutet.

Du solltest das Programm mal kommentieren, dann würdest du es sehen.

:rtfm:
 

Schandro

Top Contributor
1. die for-schleife läuft 6 mal durch, das heisst es wird insgesamt +12 auf x draufaddiert, plus den Anfangswert von 2 ergibt 14

2. Wenn das aktuelle Element in der for-Schleife größer ist als das höchste der Elemente, die bereits durchlaufen wurden, ist das aktuelle Element das neue maximum. Am Ende der for-Schelife enthält maximum den höchsten aller Werte, ist ganz einfache Logik. Falls du Probleme mit der Syntax o.Ä. haben solltest les dir einfach nochmal die ersten Kapitel eines Java-Buches durch, das ist sinnvoller als es sich im Forum erklären zu lassen.
 

Oben