Poslao: 27 Mar 2013 15:38
|
offline
- E.L.I.T.E.
- Legendarni građanin
- Pridružio: 23 Maj 2012
- Poruke: 4575
|
Radim program u Javi koji treba da ispita korisnika sledeće;
Koliko ima godina?
Kako se zove?
Tu se koristi input (skener) metoda, ali mi nije baš najjasnije.
import java.util.Scanner;
public class skener {
public static void main(String[] args) {
Scanner kb = new Scanner(System.in);
byte godiste;
String ime;
System.out.println("Koliko si star? ");
godiste = kb.nextByte();
Scanner kb1 = new Scanner(System.in);
System.out.println("Kako se zoveš? ");
ime = kb1.nextLine();
char c = ime.charAt(0);
System.out.println("Ti imaš " + godiste + " godina. Tvoje ime je " + ime + ".");
}
}
Trebalo bi da je to to. Imam sada par pitanja.
1. Šta znači Scanner kb = new Scanner(System.in); ?
2. Koji će mi char c = ime.charAt(0); , kada ga nisam ni koristio? Dali se radi o varijabli c ili nekoj funkciji?
Sad, pretpostavljam da je ovo Scanner kb ime skenera. new Scanner dodaje novi skener. byte je brojevni unos korisnika, a String je slovni.
Nakon toga ide godiste = kb.nextByte();, šta mu sad to dođe? Ako je tačna moja prva pretpostavka, onda je ovo Scanner kb1 = new Scanner(System.in); isto što i ono malo pre, samo što se radi o drugom skeneru.
Najviše me muči ovaj deo:
char c = ime.charAt(0);
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 27 Mar 2013 15:55
|
offline
- Srki_82
- Moderator foruma
- Srđan Tot
- Am I evil? I am man, yes I am.
- Pridružio: 12 Jul 2005
- Poruke: 2483
- Gde živiš: Ljubljana
|
Prvo da naglasim da za čitanje ulaznih parametara ne moraš da koristiš Scanner klasu. To je samo pomoćna klasa koja ti olakšava čitanje podataka iz datoteka, stringova ili bilo kakvih stream-ova.
1. To znači da praviš instancu klase Scanner koja će podatke uzimati sa standardnog ulaza (uglavnom je to tastatura). Sve operacije koje budeš kasnije pozivao nad tim objektom, će raditi s podacima koji tolaze iz tog izvora.
2. Time u promenljivoj c dobijaš prvo slovo imena. Možda je autor primera hteo da doda i prikaz inicijala, ali se kasnije predomislio.
3. nextByte funkcija klase Scanner, čita podatke iz izvora i vraća ti 8bitnu vrednost sa znakom. U slučaju da sledeća vrednost u izvoru nije Byte, dobijaš grešku.
4. Ne znam zašto je autor ovog primera odlučio da napravi još jednu instacu Scanner objekta (kb1). Mogao si samo opet da iskoristiš prvu instancu i za čitanje imena.
|
|
|
|
Poslao: 27 Mar 2013 16:03
|
offline
- E.L.I.T.E.
- Legendarni građanin
- Pridružio: 23 Maj 2012
- Poruke: 4575
|
Citat:1. To znači da praviš instancu klase Scanner koja će podatke uzimati sa standardnog ulaza (uglavnom je to tastatura).
Aha, zato je dakle ovo u zagradi (System.in); ? Kao ulaz?
|
|
|
|
Poslao: 27 Mar 2013 16:12
|
offline
- Srki_82
- Moderator foruma
- Srđan Tot
- Am I evil? I am man, yes I am.
- Pridružio: 12 Jul 2005
- Poruke: 2483
- Gde živiš: Ljubljana
|
Ne razumem pitanje
|
|
|
|
Poslao: 27 Mar 2013 16:18
|
offline
- E.L.I.T.E.
- Legendarni građanin
- Pridružio: 23 Maj 2012
- Poruke: 4575
|
Gledaj, to Scanner kb = new Scanner(System.in); , skenira ono što unese korisnik (kao in - ulazno, out - izlazno). Kao kod System.out.println();, tekst se ispisuje ne ekranu, to je izlazni podatak.
Jeli sam u pravu ili ne?
|
|
|
|
Poslao: 27 Mar 2013 16:38
|
offline
- Srki_82
- Moderator foruma
- Srđan Tot
- Am I evil? I am man, yes I am.
- Pridružio: 12 Jul 2005
- Poruke: 2483
- Gde živiš: Ljubljana
|
To Scanner kb = new Scanner(System.in); kreira instancu klase Scanner koja kao izvor podataka uzima podatke sa standardnog ulaza. U većini slučajeva je to tastatura, ali može biti i datoteka ili nešto treće u zavisnosti od toga šta je mapirano na standardni ulaz. Ne smeš se oslanjati na to da je System.in ulaz sa tastature.
System.out je standardni izlaz, koji je u većini slučajeva ispis u konzolu, ali i on može biti datoteka ili nešto treće. I ovde se ne smeš oslanjati na to da će System.out ispisivati podatke na ekran.
Više o standardnom ulazu i izlazu možeš naći ovde: http://en.wikipedia.org/wiki/Standard_streams
|
|
|
|
|