minimumsuche

Status
Nicht offen für weitere Antworten.
G

glausi

Gast
Guten abend, ich will mit einer Minimumsuche unter java aus 3 Zahlen das Minimum suchen. Aber hab immernoch nen Fehler drin, vllt könnt ihr mir helfen.

Code:
public class MinimumSuche{
	public static void main(String[] args){
		double a=Double.parseDouble(args[0]);
		double b=Double.parseDouble(args[1]); 
		double c=Double.parseDouble(args[2]); 
		double Min;
		if(args.length !=3) {
			System.out.println("Fehler:Bitte geben sie 3 Kommandozeilenparameter ein!");
		}else{
		System.out.println("Zahl1: "+a+"  Zahl2: "+b+"  Zahl3: "+c);
		Min=minSuche(a,b,c);
		System.out.printl(Min);
			}		
		}	
	}
	public static double minSuche(double a, double b, double c){
		if(a<=b && a<=c){
			return a; 
		}else if(b<=a && b<=c){
			return b; 
		}else if(c<=a && c<=b){
			return c; 
		} 
	}		
}
 

JPKI

Top Contributor
Wie immer ohne Garantie:
Code:
public static double minSuche(double a, double b, double c) {

 return Math.min(Math.min(a,b),Math.min(b,c));
}

Ach noch was: Wenn du deinen Code behalten willst, lass einfach das letze if weg und schreib' nur else hin.
 
G

Guest

Gast
ja, ich wills aber mit meinem code von oben machen...bin da aber ratlos, weil ich den fehler nicht finde.
 

JPKI

Top Contributor
Ich denke, es handelt sich dabei um einen Compilerfehler. Und zwar deshalb, weil dein Code nicht in jedem Fall einen Wert zurückliefert.
Lass in der Funktion minSuche() einfach das letze if Weg (siehe Post von oben :roll: ) Wenn a nicht der kleinste Wert ist, und b auch nicht, kann's ja nur noch c sein, deshalb reicht dort ein einfaches else aus.
 

Murray

Top Contributor
Erstens stimmt die Klammerung in der main-Methode nicht, zweitens ist der Compiler nicht intelligent genug zu erkennen, dass die drei genannten Alternative (if / else if / else if) alle drei möglichen Fälle abdecken.

So sollte es gehen:
Code:
public class MinimumSuche{
	
	public static void main(String[] args){
		
		double a = Double.parseDouble(args[0]);
		double b = Double.parseDouble(args[1]);
		double c = Double.parseDouble(args[2]);
		double min;
		if( args.length !=3) {
			System.out.println("Fehler:Bitte geben sie 3 Kommandozeilenparameter ein!");
		} else {
			System.out.println("Zahl1: "+a+"  Zahl2: "+b+"  Zahl3: "+c);
			min = minSuche(a,b,c);
			System.out.println( min);
		}   
	}
	
	public static double minSuche(double a, double b, double c){
		if (        (a<=b) && (a<=c)){
			return a;
		} else if ( (b<=a) && (b<=c)){
			return b;
		} else if ( (c<=a) && (c<=b)){
			return c;
		}
		
		return 0.0; //--- unreachable code; satisfies compiler
	}      
}

//EDIT: Typos
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Minimumsuche mit Zähler Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben