Cześć wszystkim, Dobrego rozpoczęcia nowego roku…
Mam przepisane gotowca z książki oto kod źródłowy :
class ZagadkowyBasen1 {
public static void main(String[] args) {
int x=0;
while(x<4){
System.out.print(“a”);
if(x<1){
System.out.print(" ");
}
System.out.print(“n”);
if(x>1){
System.out.print(“tyczny”);
x=x+2;
}
if(x==1){
System.out.print(“talek”);
}
if(x<1);{
System.out.print(“asz”);
}
System.out.println("");
x=x+1;
}
}
}
Wynik powinien być : a nasz
antalek
antyczny
,a wychodzi : a nasz
antalekasz
antycznyasz
Już wiele razy zmieniałem wartość x, lub zmieniałem kolejność wyświetlonych zawartości jednego wiersza np.System.out.print(“asz”) który powiela sie niepotrzebnie o 2razy…Nie powinien pokazywać tego wyniku…Dzięki za porady, info, pomoc
znów średnik zaraz za warunkiem if’a
nr47
(Sawyer47)
29 Grudzień 2010 23:02
#3
Zadbaj o formatowani kodu, oto jak mógłby wyglądać, gdybyś poświęcił kilka sekund na użycie tabulatora:
class ZagadkowyBasen1 {
public static void main(String[] args) {
int x=0;
while(x<4) {
System.out.print("a");
if(x<1) {
System.out.print(" ");
}
System.out.print("n");
if(x>1) {
System.out.print("tyczny");
x=x+2;
}
if(x==1) {
System.out.print("talek");
}
if(x<1) {
System.out.print("asz");
}
System.out.println("");
x=x+1;
}
}
}
Co do problemu to masz średnik po if(x<1) co zupełnie zmienia działanie programu.
matzu
(Tomek Matz)
29 Grudzień 2010 23:10
#4
Ty jesteś chyba niereformowalny, ale spróbuję jeszcze raz
http://forum.dobreprogramy.pl/system-out-print-kontra-system-out-println-t427529.html?hilit=ArchiJavaError#p2718616
I nie mówię tego dlatego, że takie jest moje widzi mi się. Tak po prostu powinno się robić.
Airborn
(Airborn)
30 Grudzień 2010 13:33
#5
ArchiJavaError , proszę poprawić formatowanie wklejonego kodu oraz objąć go tagiem
aby poprawić jego czytelność. Proszę również pamiętać by w przyszłości stosować to zalecenie do wszystkich nowych postów[/color]
Cześć Dzięki za wiadomość,myślę,że z użyciem tagów nie będzie problemu…
Szczęśliwego Nowego Roku…
– Dodane 31.12.2010 (Pt) 12:40 –
Nasunęło mi się pytanie ale co sprawia,że do każdej lini jest dodawany na koniec “asz” :
if(x<1);
{
System.out.print(“asz”);
}
przecież nie we wszystkich przypadkach x<1 i nie wiem o co chodzi może to zasługa lini
System.out.println("") ale nie jeste pewien…Może mi ktoś podpowie…Myślę,że nie jest to trudne ale pewnie za proste by to zrozumieć mógł każdy…
Dzięki za podpwowiedzi…
matzu
(Tomek Matz)
2 Styczeń 2011 21:22
#7
Dlatego, że jak zauważył cayman3_11 masz średnik za instrukcją
if(x<1)
W związku z tym ten kod
{
System.out.print("asz");
}
jest wykonywany zawsze, bo instrukcja if nie odnosi się do niego. Jeśli masz zapis
if(x<1);
to to znaczy, że jeśli x będzie mniejsze od 1 to nie rób nic.
Mam nadzieję, że teraz to zrozumiesz. Choć wydaje mi się, że już ostatnim razem [alex] wytłumaczył to wystarczająco.
PS Zainstaluj jakieś IDE, np. NetBeans lub Eclipse i zacznij używać debuggera. Poza tym zastosuj się do zaleceń Airborn .