0 Daumen
529 Aufrufe

Hey,

Die Aufgabe lautet:

Wählen Sie für folgende Probleme jeweils eine geeignete Kontrollstruktur aus und
setzen Sie diese in Java um:

a) Test, ob ein Buchstabe im Bereich A-Z liegt

b) Bestimmen des Brotpreises für 5 Brotarten

c) Bestimmen des Strompreises bei verschiedenen Abnahmemengen:
1 – 1000 kwh: 35 ct/kwh
1001 – 2500 kwh: 29 ct/kwh
2501 – 4500 kwh: 24 ct/kwh
über 4500 kwh: 22 ct/kwh

Avatar von

1 Antwort

0 Daumen

Hi Sarah,


1) Bedingte Anweisung:

char n;
int ascii = (int) c;
return (c >= 65 && c <= 90)? true : false;

2) ich verstehe nicht wirklich den Sinn bzw. die Anforderung. Wenn man zwischen 5 Brotarten und deren Kosten unterscheiden soll, eignet sich ein switch-case.


3) hier ebenfalls Bedingte Anweisung. Switch-case funktioniert nicht mit booleschen Ausdrücken.

int gesamtStromInKwh;
int gesamtKostenCt = 0;
if (gesamtStromInKwh <1001)
gesamtKostenCt = gesamtStromInKwh * 35;
else if (gesamtStromInKwh <2501)
gesamtKostenCt = gesamtStromInKwh * 29;
else if (gesamtStromInKwh <4501)
gesamtKostenCt = gesamtStromInKwh * 24;
else
gesamtKostenCt = gesamtStromInKwh * 22;


Beste Grüße

Felix

Avatar von

okay vielen lieben Dank :)

Kann ich Sie nur durch stacklounge.de kontaktieren, falls ich andere Fragen habe?

ich hab b) so gemacht aber es funktioniert nicht mit eclipse :(

was hab ich falsch gemacht?


import java.util.Scanner;
public class Brot { 
public static void main (String[] args ) {
 Scanner sc= new Scanner (System.in);    
int brotsorte=0;
 int weißbrot= sc.nextInt(); 
int schwarzbrot=sc.nextInt();
 int baguette=sc.nextInt(); 
int vollkorn=sc.nextInt();
 int Haferflockenbrot=sc.nextInt();  
switch (brotsorte) { 
case 1: weißbrot: System.out.println ("1,50 Euro"); 
case 2:schwarzbrot: System.out.println ("1,50 Euro"); 
case 3: baguette: System.out.println ("1,50 Euro"); 
case 4: vollkorn: System.out.println ("1,50 Euro"); 
case 5: Haferflockenbrot: System.out.println ("1,50 Euro"); }   
}
}

Von mir aus auch per Mail, wenn es sich im Rahmen hält ;)

felix-k-1@web. de


Zu deinem Lösungsansatz:

Das ist leider logisch, dass es nicht funktioniert.

Also:

In die runden Klammern hinter dem switch kommt eine Variable. Jedes case stellt jetzt einen möglichen Wert dieser Variable dar.

Hinter das case kommt somit immer der zu erwartende Wert und nicht eine Nummerierung von 1 bis n.

Nach jedem case-Anweisungsblock muss noch ein break; kommen, um das switch-case vorzeitig zu beenden, andernfalls würden alle nachfolgenden cases auch noch ausgeführt werden.


Zusammengefasst:

Scanner sc = new Scanner(System.in);
int brotsorte = sc.nextInt();
//brotsorte hat jetzt irgendeine Zahl gespeichert, die vom User eingegeben wurde. Jetzt wird im Switch-case überprüft, welche Brotsorte für welche Zahl steht.
switch(brotsorte){
case 1:
System.out.println("Ein Weißbrot kostet 1,50 €");
break;
case 2:
  System.out.println("Ein Schwarzbrot kostet 1,50 €");
  break;
case 3:
  System.out.println("Ein Baguette kostet 1,50 €");
  break;
case 4:
  System.out.println("Ein Vollkornbrot kostet 1,50 €");
  break;
case 5:
  System.out.println("Ein Haferflockenbrot kostet 1,50 €");
  break;
default:
System.out.println("Gib eine Zahl zwischen 1 und 5 an.");
}
Das default braucht kein break am Ende, der Block ist ja sowieso vorbei.

Grüße

Felix

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community