# Drei Anweisungen in einer For Schleife



## MaikHSW (31. Jan 2007)

Hey zusammen.
Ich habe eine For Schleife und möchte dort zwei Anweisungen integrieren.
Also er soll den Zähler um eins höher setzen (i=i+1) und er soll eine Eingabe einlesen.
Das mache ich ja mit den Zeilen "System.out.print("Bitte geben Sie die Note ein");
Note=Kbd.readDouble();

Nun nimmt er bei mir nur die erste Anweisung und springt dann direkt weiter, setzt den Zähler 1 hoch und läuft erneut durch.
Ich kann also nicht die Verbindung herstellen.
Ich habe schon in mehreren e-Books gesucht aber meist haben dort die For Schleifen nur eine Anweisung.
Operatoren wie + oder & brachten auch nicht das, was ich wollte.
Wie mache ich das am geschicktesten?
Ich bin eher ratlos :-( 

Danke für eure Mühen.


Gruß



Maik


----------



## Icewind (31. Jan 2007)

hä... also eine for schleife schaut ja meist so aus:

for( laufvariable initialisieren ; abbruchbedingung ; laufvariable erhöhen)
{
    schleifenkörper
}

wie genau meinst du das mit den drei anweisungen??


----------



## MaikHSW (31. Jan 2007)

Hey icewind.
Im Schleifenkörper selbst habe ich ja die Anweisung das er einen Text ausgeben soll (System.out.print), das er eine Eingabe übernehmen soll (Variable=Kbd.readDouble()) und die Aufforderung die Variable i zu erhöhen (i=i+1)
Wie bringe ich all dies in den Körper unter?
EInfach nacheinander schreiben geht ja nicht.
Und durch Semikolon trennen hat bei mir nur dazu geführt, dass er nur die erste Anweisung gelesen hat.
Oder mach ich nen Gedankenfehler?
Ist nen Break notwendig um die Schleife für die Eingabe zu stoppen? Eigentlich nicht, oder?

Gruß


Maik


----------



## SlaterB (31. Jan 2007)

poste doch mal deinen Code..

wichtig sind Klammern
{

}

sonst wird nur der eine Folgebefehl mehrfach ausgeführt


----------



## MaikHSW (1. Feb 2007)

/**
  *
  * Beschreibung.

  *
  * @version 1.0 vom 30.01.2007
  * @author
  */
     import de.lsbk.io.*;
public class Zensur2 {

  public static void main(String[] args) {
  double anzahl;
  System.out.print("Wie viele Zensuren? ");
  anzahl=Kbd.readDouble();
  for ( int i = 1; i <= anzahl; i++){
  System.out.print("Bitte geben Sie die ");
  double note=Kbd.readDouble(),
  double gesamt=gesamt+note;}
  }


Das hier ist der Quelltext.
DIe Frage soll so oft kommen wie Noten da sind und man soll jede Note erfassen und später halt als Durchschnitt ausgeben.
Wo ist mein Gedankenfehler?
So ist es nach meinen bescheidenen Wissen möglich, aber scheinbar doch nicht.

Gruß


Maik


----------



## Gelöschtes Mitglied 5909 (1. Feb 2007)

dein code is mal total unleserlich, und benutz bitte mal die code tags fürs forum


```
import java.util.Scanner;

public class Noten 
{
	
	public static void main (String args[])
	{
		Scanner s = new Scanner(System.in);
		System.out.print("Wieviele Noten moechten sie eingeben?");
		int num = s.nextInt();
		int summe = 0;
		for (int i = 0; i < num; i++)
		{
			System.out.print("Note: ");
			summe += s.nextInt();
		}
		System.out.println("Notendurchschnitt: " + ((double) summe / num));
	}	
	
}
```


----------



## MaikHSW (1. Feb 2007)

Hey raiL.
Sorry das mein Code so schlecht ist.
Wir sind erst am Beginn des Stoffs und daher ist mein Wissen noch sehr stark begrenzt.
Dein Code läuft bei mir noch nicht, aber ich schaue ihn mir mal genauer an und versuche zu verstehen.
Danke für deine Mühe das Ganze zu schreiben.


Gruß


Maik


----------



## Gelöschtes Mitglied 5909 (1. Feb 2007)

ich hab ihn aber erfolgreich getestet
probier mal

javac Noten.java 
java Noten

du musst die Datei unter dem gleichen namen speichern wie die Klasse heißt, also Noten.java


----------



## MaikHSW (1. Feb 2007)

Hey raiL.
Ja,
nun klappt er auch.
Frag mich nicht warum er es eben nicht tat.
Ich habe nichts verändern müßen und nur nochmal kompiliert.
Also hattest du schon Recht, danke.
Nun muß ich mir nur noch deinen Text vor Augen führen und möglichst verstehen. Ich will ja keine Aufgabe gelöst haben ohne sie zu verstehen.


Gruß

Maik


----------



## Gelöschtes Mitglied 5909 (1. Feb 2007)

nunja, ich hab eine eingabe in der for schleife,
diese wird halt aufsummiert und dann durch die anzahl dividiert
da das ergebniss einer division von 2 ints wiederrum ein int ist (nachkommastellen werden abgeschnitten, habe ich nach double gecastet, damit man eine nachkommastelle erhält.
und die eingabe vorher is ja einfach nur für die gesamte anzahl der noten


----------



## MaikHSW (1. Feb 2007)

Hey raiL.
Super,
danke für die Erklärung.
Ich habe mir zwischenzeitlich auch mal die einzelnen Befehle genauer angeguckt, gerade den Scanner Befehl kannte ich noch nicht.
Nun hab ich alles soweit verstanden, auswendig lernen braucht man sowas ja eh nicht.
Danke für deine Mühe und Hilfe.


----------

