Wątek przeniesiony 2016-08-15 07:16 z Java przez bogdans.

Pomoc w zadaniu

0

Witam

Aktulalnie jestem w trakcie jednego z kursow javy i jedno z cwiczen sprawia mi ogromne trudności pewnie to jakiś banalny blad ale nie wiem gdzie go popełniam.
Mianowicie chodzi o zadanie :
"Napisz program, który przyjmuje dane wprowadzane przez użytkownika z konsoli. Program ten powinien sprawdzać zakresy wieku w następujących przedziałach: od 0 do 10, od 11 do 20, od 21 do 30 i powyżej 30 lat. uruchom program i oto co powinieneś zobaczyć w oknie Output:

run:
Wprowadź swój wiek: 27
Użytkownik ma od 21 do 30 lat
BUILD SUCCESSFUL (total time: 4 seconds)

Jeśli użytkownik ma więcej niż 30 lat to zostanie wyświetlony komunikat:
"Użytkownik ma ponad 30 lat"
Aby uzyskać wartość ciągu od użytkownika wpisz następujący kod:
String wiek = user_input.next();
Ale metoda next() służy do zmiennych typu String. Wiek jaki wpisują użytkownicy to liczba całkowita, więc nie można uzyć next(). Ale jest na to sposób należy użyć podobnej metody: nextInt()."

To jest to co napisalem:

package javaapplication14;
import java.util.Scanner;
public class JavaApplication14 {
   
    public static void main(String[] args) {
        Scanner user_input = new Scanner (System.in);
        String wiek ; “TE STRING”
        System.out.print("Wprowadz wiek");
        wiek = user_input.nextInt();
        
        
    }

Wiem dużo nie napisałem…. ale w ostatnim wierszu tam gdzie jest “wiek = user_input.nextInt();” ciagle wyrzuca mi na czerwono ze jest blad probowalem String zmienić na Int ale to tez nie przeszlo…
jeżeli wprowadzam komendę “wiek = user_input.next();” to przechodzi ale w następnej linijce

wiek = user_input.next();
        switch(wiek) {
            case 0: TU

wyskakuje mi ze int nie może być przekształcone na String przy case.
Nie mam pojęcia gdzie robie blad jestem poczatkujacy prosiłbym o pomoc bylbym niezmiernie wdzięczny
Pozdrawiam Michal.

1

możesz użyć metody next, ale jako parametr innej metody w klasie Integer

int wiek;
wiek = Integer.parseInt(user_input.next())
0

String wiek ; “TE STRING” // jest to typ "String"

    wiek = user_input.nextInt(); // zapewne zwraca typ "int" 

Jak widać są to dwa rożne typy, java to język w którym nie można od tak sobie o zmieniać typów, jeżeli chcesz je zmienić to musisz przeprowadzić rzutowanie.
Ale prościej chyba będzie po prostu dać
int wiek

0

String wiek ; “TE STRING”... Co to jest?

0

Rafal dziekuje bardzo podzialalo.
Mam jeszcze jedna wielka prosbe co oznacz "parseInt"?
Nie wiem czy dobrze zrozumialem ale to oznacza ze jest to parametrem int tak? tzw rzutowanie o ktorym mowil wrona.
Wrono chialbym zeby uzytkownik wprowadzal dane nie ja.
Fantaajzatyku
Zdaje sobie spraweze Integer przechowuje liczby stale a String zbior liter. Podkreslam duzo nie mam wspolnego z java dopiero sie ucze chce zobaczyc czy to dla mnie jezeli masz jakas konstruktywna uwage chetnie wyslucham.
Dziekuje wszystkim za poswiecony czas :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1