Else wird nicht ausgeführt.

Diskutiere Else wird nicht ausgeführt. im Java Basics - Anfänger-Themen Bereich.
M

marius2003

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();
      }
    }
}
 
J

JustNobody

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.
 
Kirby_Sike

Kirby_Sike

Weil du der variable schnitt nichts zuordnest sondern einer variable schnitt in der methode :) du müsstest this.schnitt benutzen
 
M

marius2003

Vielen Dank für eure schnellen Antworten! Es hat tatsächlich gereicht einfach das double zu löschen.
 
mihe7

mihe7

Kleine Anmerkung: Einen Scanner, der System.in verwendet, schließt man nicht.
 
Thema: 

Else wird nicht ausgeführt.

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben