Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Strony: 1
Z uwagi na nową podstawę programową która drastycznie zmienia program dla technikum na profilu technika informatyka (poprzednie roczniki miały pełno godzin programowania, a u nas tego brak) i będziemy się uczyć tylko w 3-ciej klasie PHP(aplikacje internetowe), co mnie nastraja negatywnie, postanowiłem rozpocząć naukę jakiegoś języka programowania, rozważałem Pythona, ale że mój kumpel z internatu uparł się na Jave i zaczął się uczyć Javy, to stwierdziłem, że we 2 będzie raźniej, no to padło na Jave.
I w związku z tym mam pytanie (ale jak znam życie, to pewnie będzie ich więcej) następujące:
Czemu jeśli pobieram dane Scannerem, to muszę pobierać Stringi przed pobraniem Liczb (Float)(jeśli scan.nextLine znajdzie się pod scan.nextFloat, to scan.nextLine jest pomijane i kod się dalej wykonuje) ?
Z góry dzięki i pozdrawiam
Offline
Nie rozumiem pytania ;] Może wklej problematyczny kod.
Offline
package czesc3; import java.util.Scanner; /** * * @author tomek */ public class Skaner { public static void main(String[] args){ Scanner scan = new Scanner (System.in); float liczba1; float liczba2; String operacja; /*String operacja;*/ float wynik = 0; System.out.print("Podaj pierwszą liczbę:"); liczba1 = scan.nextFloat(); System.out.print("Podaj drugą liczbę:"); liczba2 = scan.nextFloat(); System.out.println("Wybierz jedno z działań (Dodawanie, Odejmowanie, Mnożenie, Dzielenie):"); operacja = scan.nextLine();}}
Powyższy kod po wpisaniu drugiej liczby skończy się wykonywać (zostanie wyświetlone "Wybierz jedno(...)") i wyświetli sie "BUILD SUCCESSFUL (total time: 2 seconds)"), a jeśli przestawię dwie linie odpowiedzialne za wyświetlanie tego tekstu i za pobieranie go do stringa nad te do pobierania Floatow, to będę mógl bez problemu pobrać stringa.
Piszę w NetBeansie na Debianie, pobierałem paczkę ze zintegrowanym JDK (Netbeans 7.2.1 + JDK 7)
Ostatnio edytowany przez thomsson (2013-03-23 22:40:04)
Offline
Funkcja nextLine() zczytuje wszystko do końca nowej linii. Z poprzedniego zczytania jeszcze został znak przejścia do nowej linii, bo pewnie wpisujesz liczbe2 i dajesz enter. Funckja nextFloat() zczyta liczbe, a nextLine() to co pozostało. Spróbuj wpisać liczbe i coś jeszcze i wyświetlaj na końcu wartośc zmiennej operacja, dostaniesz top co jest po liczbie do konca linii. Albo jeśli powtórzysz ostatnia linijke to program poczeka aż wpiszesz kolejną linie, bo nic nie pozostało juz z poprzedniego scanowania co by dało się zczytać. Poeksperymentuj a zobaczysz w czym rzecz. Najlepszym rozwiązaniem, które cie pewnie zadowoli będzie zastąpienie nestLine() funkcją next().
Offline
[OT]
Radosna twórczość na wykładzie :D
[EOT]
thomsson napisał(-a):
Piszę w NetBeansie na Debianie, pobierałem paczkę ze zintegrowanym JDK (Netbeans 7.2.1 + JDK 1.7)
1.7 czy 7?
Offline
@kamikaze - dzięki, potestuje, w sumie pewnie znalazłbym odpowiedź w dokumentacji, ale na to nie wpadłem :)
@mati75 - 7 ofcoz ;D (poprawię zaraz)
Offline
Spróbuj na 6.
Offline
mati75 napisał(-a):
[OT]
Radosna twórczość na wykładzie :D
http://ompldr.org/vaHYxNw
[EOT]thomsson napisał(-a):
Piszę w NetBeansie na Debianie, pobierałem paczkę ze zintegrowanym JDK (Netbeans 7.2.1 + JDK 1.7)
1.7 czy 7?
mati75 Kim jest Edyta ? :P
Offline
Moją 0.5.
Offline
Strony: 1