so jetzt hab ichs nochmal umgeschrieben.. jetzt müssten alle zufrieden sein..hoff ich
also zuerst hab ich das mit dem
if (zeilen == 5) {
status = true;
break;
} else {
status = false;
}
ohne die zeilenLÄNGE abzufragen hingeschrieben.. hat funktioniert. also hab ich dann die zeilenlänge-abfrage nach der zeilenanzahl-abfrage hingeschrieben... jetzt funktionierts. und alles innerhalb der schleife
Beiträge von Klaudia
-
-
das hab ich schon am anfang probiert..
if (zeilen == 5) {
status = true;
break;
}
das funktioniert aber nicht. -
ja bei der zeilenlänge bin ich mir 100% sicher. da kommt NUR bei 3 zeichen OK.
bin jetzt wieder einmal alles der reihe nach durchgegangen.. hab die if-abfrage (zeilen != 5) außerhalb der schleife hingeschrieben und jetzt funktionierts.
Danke für die ewige Geduld und Hilfe =) -
ja anscheinend denk ich falsch.. grml..
wie schleifen allg funktioniert versteh ich eigentlich schon.
wenn es klappt dass wenn ich frage ob mehr zeilen als 5 da sind, falsche eingabe ausgegeben wird, sobald 6 zeilen dastehn.. wieso klappt es dann nicht wenn ich abfrage ob 5 zeilen da sind.. ?! es funktioniert ja auch vorher mit der zeilenlänge -
hmm.. ich denk mir mal er prüft schon nach der ersten zeile und weil die nicht gleich 5 ist, bricht er ab.. versteh aber nicht wieso er mir nicht die chance gibt mehr einzugeben ...
-
sorry war das wochenende nicht da..
so funktionierts jetzt ..für mehr zeilen als 5 kommt falsche eingabe..
aber für weniger ein ok.. deswegen hab ich mir gedacht, es müsste auch funktionieren wenn ich schreib:
nach einer zeile bricht er aber schon ab und gibt eine falsche eingabe aus.. oder dem break kommt immer falsche eingabe, egal wie viele zeilen ich einlesen... -
oje oje..du hast echt geduld
Java
Alles anzeigenimport java.util.*; public class Ascii { public static void main(String[] args) { String zeile = " "; boolean status = true; int zeilen=0; Scanner einlesen = new Scanner(System.in); while (einlesen.hasNext() && zeilen <= 5){ zeile = einlesen.next(); zeilen ++; if (zeile.length() != 3) { status = false; break; } } if (status) { System.out.println("OK"); } else { System.out.println("FALSCHE EINGABE"); } } }
-
das mit dem status hab ich eh schon lange aus der schleife raus getan..
ich hab das jetzt so gemacht wie dus geschrieben hast, aber das funktioniert auch nicht... ich kann wiedr so viele zeilen wie ich will einlesen und es is immer ein OK...
sehr seltsam... -
soo...jetzt hab ich echt viel herumprobiert und mir genau das angeschaut was du gesagt hast. hat schon ziemlich geholfen, ich versteh jetzt mehr.
und das prog funkt wies sollte juhuu
grml.. doch nicht...
ich hab jetzt
for .. {
while .. {
...
}
}
es kommt auch ein OK wenn ich zu viele zeilen hab.. und wenn ich das while weglasse kommt nach den 5 zeilen ganz allein ein OK..bei der abgabe steht dann dass bei mehr zeilen auch ein OK kommt.. wie wenn man gar nicht mehr zeilen eingeben kann... -
danke dir wirklich.
ich weiß.. ich renn eigentlich ungern sofort ins forum .. ich will den code ja nicht von wem bekommen, sondern es wirklich selbst machen und verstehen.. aber ich sitz echt schon seit dienstag an dem bsp und hab schon viel versucht, komme eh zwar langsam (aber doch) irgendwie weiter..
kommt jetzt zwar keine exception..dafür immer nur falsche eingabe..
und zu deinem zweiten.. dass ich vor dem if zeile.length rausschreiben soll.. meinst du ich soll mit system.out.print die anzahl der eingegeben zeichen ausgeben lassen? -
kann ich das irgendwie umgehen, oder muss ich das mit try..catch lösen?
sollte ja nach den 3 zeilen ein OK kommen... -
ich hab das jetzt so probiert..
Code
Alles anzeigenfor (int zeilen=0; zeilen<3; zeilen++) { zeile = einlesen.next(); if (zeile.length() != 3) { status = false; } } if (status == false) { System.out.println("FALSCHE EINGABE"); } else { System.out.println("OK"); }
aber irgendwas klappt da nicht...?!
also wenn ich 3 zeilen eingebe mit je 3 zeichen kommt sofort FALSCHE EINGABE und gebe ich zu wenige zeilen ein kommt sowas:
Exception in thread "main" java.util.NoSuchElementException
at java.util.Scanner.throwFor(Scanner.java:838)
at java.util.Scanner.next(Scanner.java:1347)
at Ascii.main(Ascii.java:13) -
oke sehr gut funktioniert.
jetzt überleg ich wie eine bestimmte anzahl der zeilen verlangen kann.. kann mir jemand einen tipp geben? -
oh mann...ja stimmt..das hab ich ganz übersehen..danke!!
und wie mach ich jetzt dass das programm nach einem OK oder FALSCHE EINGABE selbst endet? -
Hallo!
Ich versuche eigentlich die 1.Runde in Eprog zu lösen, aber zuerst wollte ich ein Programm schreiben, das nur einen Teil macht von dem was sie in der 1.Runde verlangen und das klappt nicht so 100% wie ichs gern hätte...
Und zwar will ich, dass das Programm einen String einliest, der eine bestimmte Länge haben soll. Wenn es passt "OK" ausgeben, wenn nicht "FALSCHE EINGABE".
klappt soweit, dass das OK kommt, wenn die länge stimmt, aber bei falscher länge kommt auch das OK. und ich komm aus dem ganzen erst raus, wenn ich Ctrl+Z drücke.. das will ich eigentlich auch nicht..
Java
Alles anzeigenimport java.util.*; public class Ascii { public static void main(String[] args) { String zeile = " "; boolean status = true; Scanner einlesen = new Scanner(System.in); while (einlesen.hasNext()) { zeile = einlesen.next(); if (zeile.length() != 7) { status = false; } if (status = false) { System.out.println("FALSCHE EINGABE"); } else { System.out.println("OK"); } } } }
-
was muss ich jetzt also tun, damit die zahlen nicht so angezeigt werden?
das andere problem hab ich gelöst -
danke geht :]
hab aber das nächste problem..
Code
Alles anzeigenwhile (preis>=0) { System.out.print("Bitte ganzzahlig bezahlen:"); bezahlung = einlesen.nextInt(); System.out.println(); System.out.print("Du hast "); System.out.print(bezahlung); System.out.println(" Euro gegeben."); if (bezahlung > preis) { System.out.print("Danke fuer die "); System.out.print(bezahlung-preis); System.out.println(" Euro Trinkgeld ;] !!"); } else { preis=0;
es geht bis zum trinkgeld gut, nur dann beginnt das ganze von anfang und kommt nie zum ende...
außerdem, wenn der preis zb 6.4euro ist, man zb 7 zahlt, dann kommt 0.59999999 euro trinkgeld. wieso nicht einfach 0.6?? -
hallo,
ich hab wieder ein problem...
also bei diesem stückerl hab ich anscheinend was falsch gemacht:
char wahl;
wahl = einlesen.next().charAt(0); //einlesen Wahl
preis = 0;
if (wahl = 'a')
preis = preis + 5.49;
else if (wahl='b')
preis = preis + 4.99;
else if (wahl='c')
preis = preis + 6.79;
else if (wahl='d')
preis = preis + 7.69;
wenn ich kompiliere dann enstehen eben bei diesen zeilen die fehler; incompatible types
found: char
required: boolean
else if (wahl='a/b/c/d')
danke schon mal -
Danke! War echt der Path...
Danke wirklich! (vor allem für eure Geldud ;])
lg -
ok, hab mir das jetzt fast alles durchgelesen... mein problem: woher krieg ich dieses eprog.jar ?? is das unbedingt nötig?