steffen: programmvereinfachung

hi,

import java.io.*;
  public class  array {
    public static void main (String argv[]) throws IOException {
      // Variablendeklarationen:
     int anzahlNoten;
     float summe = 0;
     float [] notenfeld;
     BufferedReader eingabe = new BufferedReader (
                                  new InputStreamReader (System.in));
     // Eingaben:
     System.out.print ("Wieviele Noten? ");
     anzahlNoten = Integer.parseInt (eingabe.readLine());

notenfeld  = new  float [anzahlNoten];
     while(notenfeld[i]) {
       System.out.print ((i+1) + ".Note: ");
       notenfeld [i] = Float.parseFloat (eingabe.readLine());
       summe = summe + notenfeld [i]; // Noten aufsummieren
       i++;
     } // for...
     // Ausgaben:
     System.out.println ("Durschnitt: " +(summe/anzahlNoten)+ "\n");
     System.out.println ("Kontrollausgabe: ");
     for(int i = 0; i < anzahlNoten ; i++)
       System.out.println (notenfeld [i]);
   } // main
} // class

Diese kleine jedoch sinnlose Programm kann man doch noch irgendwie verbessern. Bin jetzt kein JAVA held, aber in PHP geht das

summe = summe + notenfeld [i];

zB so:

$summe .= notenfeld[i];

und das man eingeben muss wieviele Noten da sind geht in PHP auch einfacher

while($notenfeld[$i]){
....
$i++;
}

Wieso geht das in JAVA nicht und wie bekomme ich so etwas hin?

thx

Steffen

  1. Hi Steffen

    float [] notenfeld;

    Da würde ich eher einen Vector bzw eine ArrayList nehmen, weil soweit ich weiss unterstützt Java keine dynamischen "normalen Arrays"

    BufferedReader eingabe = new BufferedReader (
                                      new InputStreamReader (System.in));
         // Eingaben:
         System.out.print ("Wieviele Noten? ");
         anzahlNoten = Integer.parseInt (eingabe.readLine());

    notenfeld  = new  float [anzahlNoten];
         while(notenfeld[i]) {
           System.out.print ((i+1) + ".Note: ");
           notenfeld [i] = Float.parseFloat (eingabe.readLine());
           summe = summe + notenfeld [i]; // Noten aufsummieren
           i++;
         }// for...

    Wenn du es mit einem Array löst kannst du alle Elemente so auslesen:
    for(int i=0; i<notenfeld.length; i++){
      summe += notenfeld[i];
      }

    Diese kleine jedoch sinnlose Programm kann man doch noch irgendwie verbessern. Bin jetzt kein JAVA held, aber in PHP geht das

    Es ist immer ein Problem ein sinnloses Programm zu verbessern :)

    Informier dich in der Javadoc einmal über die Klassen Vector() und ArrayList() , das sind Listenimplementierungen, mit denen es einfach ist Datenansammlungen mit Dynamischer Grösse zu erzeugen.

    freundliche Grüsse,
    Daniel

    --
    Das ist der ganze Jammer, die Dummen sind immer so sicher und die Gescheiten so voller Zweifel.
    [Bertrand Russell]