Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Erste SchritteMit While Schleifen Programme schreiben
Hallo Gemeinde,
ich bin noch Anfänger und hänge an einer Aufgabe fest, wo ich einen Schubs von euch brauche. Die Aufgabe stammt aus dem Buch "Java programmieren lernen fuer Dummies.
Zitat:
Schreiben sie ei Programm, das wiederholt Zahlen einliest, die der Anwender über eine Tastertureingabe eingibt. Das Programm wird beendet, wenn der Anwender zweimal die gleiche Zahl eingegeben hat.
Das ganze soll ganz trivial in einer While Schleife geschrieben werden. Dazu habe ich schon folgendes geschrieben:
*************************************************************************************************************************
import java.util.Scanner;
public class java12_whileschleife_zweiNacheinander {
public static void main(String[] args) {
Scanner keyboard=new Scanner(System.in);
int eingabe;
int zahl=0;
System.out.println("Gib ganze Zahlen ein");
while((eingabe=keyboard.nextInt()) !=zahl) {
}
if (eingabe==zahl) {
System.out.println("Die letzten zwei Zahlen sind gleich. Das Programm ist beendet.");
}
keyboard.close();
Ich gebe zu die if Anweisung ist schon eher eine Verzweiflungstat um aus der Schleife zu springen, was das Programm natürlich nicht macht. Aber ich komme einfach nicht auf den Zweig, der die Zahlen vergleicht und dann aus der Schleife springt... Und ich habe echt so gar keine Ahnung wie ich das jetzt lösen soll.Darum rufe ich hier mal ganz lieb um Hilfe!!!!
es soll in etwa dann so aus sehen
7
8
44
5
5
Ende! Weil zwei Zahlen hintereinander gleich sind...
Bitte sei so gut und benutze Code-Tags (Probiere mal den </>-Button), dann kann man das besser lesen:
Java:
import java.util.Scanner;
public class java12_whileschleife_zweiNacheinander {
public static void main(String[] args) {
Scanner keyboard=new Scanner(System);
int eingabe;
int zahl=0;
System.out.println("Gib ganze Zahlen ein");
while((eingabe=keyboard.nextInt()) !=zahl) {
}
if (eingabe==zahl) {
System.out.println("Die letzten zwei Zahlen sind gleich. Das Programm ist beendet.");
}
keyboard.close();
}
}
Und dann schau mal, was in deiner while-Schleife steht – die sollst du ja verwenden – und wo deine Ausgabe passiert.
Erst einmal herzlichen Dank für Eure Antworten und den Tipp von Dir White Fox.
Ja die Variable zahl ist absolut überflüssig...
Mit einem Stirnklatscher habe ich jetzt die Lösung gefunden... Und was soll ich sagen es funktioniert.
Hier noch mal für die Anfänger Nachwelt...
Aber ich bin ja auch ein Anfänger mit den ersten Schritten in Java...
Java:
import java.util.Scanner;
public class java12_whileschleife_zweiNacheinander {
public static void main(String[] args) {
Scanner keyboard=new Scanner(System.in);
int eingabe;
System.out.println("Gib ganze Zahlen ein");
while((eingabe=keyboard.nextInt()) != (eingabe=keyboard.nextInt())) {
}
System.out.println("Die letzten zwei Zahlen sind gleich. Das Programm ist beendet.");
keyboard.close();
}
}
und es gab doch noch ein Fehler, der oben genannte Code funktioniert, ja. ABER hier wird paarweise verglichen!
Wenn einzelne Zahlen verglichen werden sollen, braucht es doch noch eine zweite Variable und der Code würde dann so aussehen...
Java:
public class java12_whileschleife_zweiNacheinander {
public static void main(String[] args) {
Scanner keyboard=new Scanner(System.in);
int eingabe;
int letzteEingabe=0;
System.out.println("Gib ganze Zahlen ein");
// while((eingabe=keyboard.nextInt()) != (eingabe=keyboard.nextInt())) {} // Hier wird paarweise verglichen
while((eingabe=keyboard.nextInt())!=letzteEingabe) { //Hier ist ein Einzelvergleich, so wie es sein soll
letzteEingabe=eingabe;
}
System.out.println("Die letzten zwei Zahlen sind gleich. Das Programm ist beendet.");
keyboard.close();
}