Else wird nicht ausgeführt.

marius2003

Neues Mitglied
Hallo, vielleicht kann mir ja jemand weiterhelfen. Ganz am Ende die If-Bedingung wird nicht vollständig ausgeführt bzw. die else-Bedingung wird nie durchgeführt. Egal wie groß der zuvor ermittelte Schnitt ist (wenn er größer 2 ist, wird else trotzdem nicht durchgeführt). Weiß jemand voran das liegen könnte? Ich glaube es ist nur eine Kleinigkeit, die ich allerdings nicht finde, da ich noch sehr neu mit Java bin. Das Programm an sich hat keine Fehler.

Code:
package Notendurchschnitt;

import java.util.Scanner;

public class Notenschnitt{
    
    double summe;
    int anzahl;
    public static double schnitt;
    
    public static double schnitt (double [] noten) {
        
        double summe = 0;
        int anzahl = noten.length;
        
        for (int i=0; i<noten.length; i++) {
            summe = summe + noten [i];
        }
        double schnitt = summe / anzahl;
        
        
        return schnitt;
    
    }
    public static void main (String [] args) {
        Scanner lesen = new Scanner(System.in);
        
        
        System.out.println("Wie viele Noten hast Du bekommen?");
        int anzahl = lesen.nextInt();
        
        double [] noten = new double [anzahl];
        
        System.out.println("Bitte gebe nun alle Noten ein. Trenne sie durch ein Leerzeichen oder ein Space.");
        for (int i = 0; i<noten.length; i++) {
          noten [i] = lesen.nextDouble();
            
        }
        
        System.out.println("");
        
        System.out.println("Dein Schnitt beträgt: "+schnitt(noten));
        
        
        if (schnitt < 2){
            System.out.println("Gut gemacht!");
        }else{
        System.out.println("Das geht noch besser."); 
        
    
      lesen.close();
      }
    }
}
 
Du setzt den Schnitt nie. Du hast eine statische Variable, aber in der Methode schnitt erzeugst du eine lokale Variable, die den Wert bekommt.

Also ggf. reicht es schon aus, bei der Zuweisubg das double zu löschen, so dass der Wert in die statische Variable geschrieben wird.
 
Weil du der variable schnitt nichts zuordnest sondern einer variable schnitt in der methode 🙂 du müsstest this.schnitt benutzen
 

Neue Themen


Zurück
Oben