Problem mit if-Anweisung

Status
Nicht offen für weitere Antworten.

SnakeM

Mitglied
Guten Tag zusammen,
Ich bin momentan im ersten Lehrjahr als IT-Systemkaufmann und wir nehmen im Unterricht momentan als Programmiersprache Java durch.

Nun habe ich gedahct, mit einem einfachen Programm meine Note noch etwas aufzubessern.

Leider taucht bei mir immer wieder ein Fehler auf, und zwar wird die If-Anweisung nicht beachtet sondern das läuft immer komplett durch, egal bei welcher eingabe auch immer.

Ich habe hierzu einen Freund gefragt, der mir sagte, ich solle das mit einer case-Anweisung machen.
Hierbei kommen mir aber auch immer wieder fehler..

Danke

Quellcode mit if-Anwesung:

/
Code:
/29.06.2005
//Matthias Grut
//Aufgabe des Programmes:
//Berechnung der Fläche oder des Umfangs von Geometrischen Formen

import java.io.*;
public class rechnenif
{
	public static void main (String argv[])throws IOException
	{
		int auswahl1, auswahl2;
		double a, b, c, d, s;
		double flaeche, umfang, volumen;

		BufferedReader eingabe=new BufferedReader(new InputStreamReader(System.in));

		System.out.println("Dies ist ein Programm zum Errechnen von Flächen- und Umfangsgrößen.");
		System.out.println("");
		System.out.println("Was möchten Sie berechnen?");
		System.out.println("				1.Umfang");
		System.out.println("				2.Fläche");
		
		System.out.println("Welchen Wert möchten Sie berechnen? (1-2)");
		auswahl1 = Integer.parseInt(eingabe.readLine());
		
		if (auswahl1 ==1);
		{
			auswahl awf;
			awf = new auswahl();
			
			awf.formen();
			
			System.out.println("Welche Form möchten Sie berechnen? (1-4)");
			auswahl2 = Integer.parseInt(eingabe.readLine());
			
			if (auswahl2 ==1);
			{
				System.out.println("Welche Länge (in cm) haben die Seiten?");
				a = Double.parseDouble(eingabe.readLine());
				
				umfang = a *4 ;
				
				System.out.println("Der Gesamtumfang des Quadrats ist "+umfang+"cm.");
			}
			
			if (auswahl2 ==2);
			{
				System.out.println("Welche Länge (in cm) hat die erste Seite?");
				a = Double.parseDouble(eingabe.readLine());
				
				System.out.println("Welche Länge (in cm) hat die zweite Seite?");
				b = Double.parseDouble(eingabe.readLine());
				
				umfang = (a*2)+(b*2);
				
				System.out.println("Der Gesamtumfang des Rechtecks ist "+umfang+"cm.");
			}
			
			if (auswahl2 ==3);
			{
				System.out.println("Welchen Durchmesser (in cm) hat der Kreis?");
				d = Double.parseDouble(eingabe.readLine());
				
				umfang = d * 3.141592654;
				
				System.out.println("Der Gesamtumfang des Kreises ist "+umfang+"cm.");
			}
	
			if (auswahl2 ==4);
			{
				System.out.println("Welche Länge (in cm) hat die Grundseite?");
				a = Double.parseDouble(eingabe.readLine());
				
				System.out.println("Welche Länge (in cm) hat die erste Flanke?");
				b = Double.parseDouble(eingabe.readLine());
				
				System.out.println("Welche Länge (in cm) hat die zweite Flanke?");
				c = Double.parseDouble(eingabe.readLine());
				
				umfang = a + b + c;
				
				System.out.println("Der Gesamtumfang des Dreiecks ist "+umfang+"cm.");
			}
			
			if (auswahl2 <=4)
			{
				System.out.println("Das Programm wird aufgrund Fehlerhafter Eingaben beendet.");
			}
		}

		if (auswahl1 ==2);
		{
			auswahl awf;
			awf = new auswahl();
			
			awf.formen();
			
			System.out.println("Welche Form möchten Sie berechnen? (1-4)");
			auswahl2 = Integer.parseInt(eingabe.readLine());

			
			if (auswahl2 ==1);
			{
				System.out.println("Welche Länge (in cm) haben die Seiten?");
				a = Double.parseDouble(eingabe.readLine());
				
				flaeche = a * a ;
				
				System.out.println("Die Gesamtfläche des Quadrats ist "+flaeche+"cm².");
			}
			
			if (auswahl2 ==2);
			{
				System.out.println("Welche Länge (in cm) hat die erste Seite?");
				a = Double.parseDouble(eingabe.readLine());
				
				System.out.println("Welche Länge (in cm) hat die zweite Seite?");
				b = Double.parseDouble(eingabe.readLine());
				
				flaeche = a * b;
				
				System.out.println("Die Gesamtfläche des Rechtecks ist "+flaeche+"cm².");
			}
			
			if (auswahl2 ==3);
			{
				System.out.println("Welchen Durchmesser (in cm) hat der Kreis?");
				d = Double.parseDouble(eingabe.readLine());
				
				flaeche = (d * d) * (3.141592654 / 4);
				
				System.out.println("Die Gesamtfläche des Kreises ist "+flaeche+"cm².");
			}
	
			if (auswahl2 ==4);
			{
				System.out.println("Welche Länge (in cm) hat die Grundseite?");
				a = Double.parseDouble(eingabe.readLine());
				
				System.out.println("Welche Länge (in cm) hat die erste Flanke?");
				b = Double.parseDouble(eingabe.readLine());
				
				System.out.println("Welche Länge (in cm) hat die zweite Flanke?");
				c = Double.parseDouble(eingabe.readLine());
				
				s = ( a + b + c ) / 2;
				
				flaeche = ( s * ( s - a ) * ( s - b ) * ( s - c ) );
				
				System.out.println("Die Gesamtfläche des Dreiecks ist "+flaeche+"cm².");
			}
			
			if (auswahl2 <=4)
			{
				System.out.println("Das Programm wird aufgrund Fehlerhafter Eingaben beendet.");
			}

		}
	}
}

class auswahl
{
	public void formen()
	{
		System.out.println("Welche Form möchten Sie berechnen?");
		System.out.println("Zur Auswahl stehen momentan:");
		System.out.println("				1.Quadrat");
		System.out.println("				2.Rechteck");
		System.out.println("				3.Kreis");
		System.out.println("				4.Dreieck");
	}
}


[b]Quellcode mit case-Anwesung:[/b]

//29.06.2005
//Matthias Grut
//Aufgabe des Programmes:
//Berechnung der Fläche oder des Umfangs von Geometrischen Formen

import java.io.*;
public class rechnencase
{
	public static void main (String argv[])throws IOException
	{
		int auswahl1, auswahl2;
		double a, b, c, d, s;
		double flaeche, umfang, volumen;

		BufferedReader eingabe=new BufferedReader(new InputStreamReader(System.in));

		System.out.println("Dies ist ein Programm zum Errechnen von Flächen- und Umfangsgrößen.");
		System.out.println("");
		System.out.println("Was möchten Sie berechnen?");
		System.out.println("				1.Umfang");
		System.out.println("				2.Fläche");
		
		System.out.println("Welchen Wert möchten Sie berechnen? (1-2)");
		auswahl1 = Integer.parseInt(eingabe.readLine());
		
		switch (auswahl1);
		{
			case 1:
			auswahl awf;
			awf = new auswahl();
			
			awf.formen();
			
			System.out.println("Welche Form möchten Sie berechnen? (1-4)");
			auswahl2 = Integer.parseInt(eingabe.readLine());
			
			switch (auswahl2);
				{
				case 1:
					System.out.println("Welche Länge (in cm) haben die Seiten?");
					a = Double.parseDouble(eingabe.readLine());
				
					umfang = a *4 ;
					
					System.out.println("Der Gesamtumfang des Quadrats ist "+umfang+"cm.");
				break;
				
				case 2:
				
					System.out.println("Welche Länge (in cm) hat die erste Seite?");
					a = Double.parseDouble(eingabe.readLine());
				
					System.out.println("Welche Länge (in cm) hat die zweite Seite?");
					b = Double.parseDouble(eingabe.readLine());
				
					umfang = (a*2)+(b*2);
					
					System.out.println("Der Gesamtumfang des Rechtecks ist "+umfang+"cm.");
				
				break;
				
				case 3:
				
					System.out.println("Welchen Durchmesser (in cm) hat der Kreis?");
					d = Double.parseDouble(eingabe.readLine());
				
					umfang = d * 3.141592654;
				
					System.out.println("Der Gesamtumfang des Kreises ist "+umfang+"cm.");
		
				break;
				
				case 4:
				
		
					System.out.println("Welche Länge (in cm) hat die Grundseite?");
					a = Double.parseDouble(eingabe.readLine());
				
					System.out.println("Welche Länge (in cm) hat die erste Flanke?");
					b = Double.parseDouble(eingabe.readLine());
				
					System.out.println("Welche Länge (in cm) hat die zweite Flanke?");
					c = Double.parseDouble(eingabe.readLine());
				
					umfang = a + b + c;
				
					System.out.println("Der Gesamtumfang des Dreiecks ist "+umfang+"cm.");
					
				
				break;
			
				case default:
				
		
					System.out.println("Das Programm wird aufgrund Fehlerhafter Eingaben beendet.");
					
				break;
				
				}
		

			break;
		
			case 2:
			
				{		
				auswahl awf;
				awf = new auswahl();
			
				awf.formen();
			
				System.out.println("Welche Form möchten Sie berechnen? (1-4)");
				auswahl2 = Integer.parseInt(eingabe.readLine());

			
				case 1;
				
					System.out.println("Welche Länge (in cm) haben die Seiten?");
					a = Double.parseDouble(eingabe.readLine());
				
					flaeche = a * a ;
					
					System.out.println("Die Gesamtfläche des Quadrats ist "+flaeche+"cm².");
				
				break;
			
				case 2;
		
					System.out.println("Welche Länge (in cm) hat die erste Seite?");
					a = Double.parseDouble(eingabe.readLine());
					
					System.out.println("Welche Länge (in cm) hat die zweite Seite?");
					b = Double.parseDouble(eingabe.readLine());
					
					flaeche = a * b;
					
					System.out.println("Die Gesamtfläche des Rechtecks ist "+flaeche+"cm².");
			
				
				break;
				
				case 3;
			
					System.out.println("Welchen Durchmesser (in cm) hat der Kreis?");
					d = Double.parseDouble(eingabe.readLine());
					
					flaeche = (d * d) * (3.141592654 / 4);
					
					System.out.println("Die Gesamtfläche des Kreises ist "+flaeche+"cm².");
				
	
				break;
				
				case 4;
			
					System.out.println("Welche Länge (in cm) hat die Grundseite?");
					a = Double.parseDouble(eingabe.readLine());
					
					System.out.println("Welche Länge (in cm) hat die erste Flanke?");
					b = Double.parseDouble(eingabe.readLine());
					
					System.out.println("Welche Länge (in cm) hat die zweite Flanke?");
					c = Double.parseDouble(eingabe.readLine());
					
					s = ( a + b + c ) / 2;
					
					flaeche = ( s * ( s - a ) * ( s - b ) * ( s - c ) );
					
					System.out.println("Die Gesamtfläche des Dreiecks ist "+flaeche+"cm².");
			
			
				break;
				
				case default:
			
					System.out.println("Das Programm wird aufgrund Fehlerhafter Eingaben beendet.");
			
				break;
			}
		}
	}
}

public class auswahl
{
	public void formen()
	{
		System.out.println("Welche Form möchten Sie berechnen?");
		System.out.println("Zur Auswahl stehen momentan:");
		System.out.println("				1.Quadrat");
		System.out.println("				2.Rechteck");
		System.out.println("				3.Kreis");
		System.out.println("				4.Dreieck");
	}
}
[/b]
 
public static void main (String argv[]) throws IOException

das ist schlecht, weil deine main so riesig ist (das ist übrigens auch schlecht)

mach lieber ein catch um die parseInt Methode..., ein catch um die readLines usw.
 
Der erste Fehler wäre in der 26. Reihe vom case-Code.

"switch (auswahl1);"

und der zweite wäre in der letzten Reihe wo eine } Klammer drin ist!
(Ändert sich mit der Anzahl der Reihen)


genau steht dort:
description:_____resource:_________folder:________location:

'{' expected_____rechnencase.java__C:\tools\Java___line26
'{' expected_____rechnencase.java__C:\tools\Java___line197


Die _ habe ich gemacht, damit alles untereinander steht.
 
Bitte Code-Tags benutzen, da kriegt man ja auch Augenkrebs. In den Code-Tags bitte richtig formatieren. Klammersetzung überprüft ?
 
Sorry, werde das ab sofort in meinen Posts berücksichtigen (Tags).

Klammersetzung habe ich schon mehrfach versucht zu ändern ber dan kommen nur mehr bzw andere Fehler...
 
ich weiss nicht ob ich hier was überlesen habe, aber die semikolon hinter if dürfen nicht sein, wenn du willst das die bedingung ausgewertet wird.
 
Danke, das mit dem If klappt aber wie bekomm ich jetzt hin, dass mir das Programm beim Umfang nur bis zur dritten nachkommastelle auswertet??
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben