• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Java typy wyliczeniowe Enum (zadanie)

VPS Starter Arubacloud
0 głosów
693 wizyt
pytanie zadane 15 stycznia 2017 w Java przez Szymon Ciamaga Obywatel (1,980 p.)

Witam mam do wykonania takie zadanie. 3 jest zrobione tylko mam problem z dodatkowym 3.1

3.

Napisz

program, w którym wykorzystując typ wyliczeniowy o wybranej przez siebie nazwie zdefiniujesz 4 wartości

reprezentujące kierunki świata:

NORTH, EAST, SOUTH, WE

ST

Typ wyliczeniowy powinien przechowywać informację z tłumaczeniem danego kierunku

geograficznego na język polski (północ,wschód)

itd

...

 W drugiej klasie wyświetl wszystkie kierunki geograficzne, wczytaj od użytkownika w którym kierunku chce się poruszać i wyświetl na ekranie potwierdzenie wyboru. Przykład: Podaj kierunek geograficzny:

>NORTH

Ok więc idziemy na północ

3.1

(dodatkowe)

W typie wyliczeniowym zdefiniuj dodatkową metodę convert(int num), która na podstawie przekazanego parametru (0, 1, 2, lub 3) zwraca wartość typu wyliczeniowego, odpowiednio:

0 NORTH

1 EAST

2 SOUTH

3 WEST

W typie wyliczeniowym zdefiniuj także dodatkową wartość UNDEFINED("nieznany"),

który będzie zwracany w przypadku, gdy jako argument metody przekazana zostanie

wartość inna niż 0,1,2,3

to co mam teraz

 

public enum Speed {
    SLOW(30),
    NORMAL(90),
    FAST(150);

    private final int speedEnum;

   private Speed(int speedEnum) {
        this.speedEnum = speedEnum;
    }

    public void printSpeed() {
        System.out.println(this.speedEnum);
    }

    public int getSpeedEnum() {
        return speedEnum;
    }


public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        Speed[] values = Speed.values();

        for (Speed value : values) {
            System.out.println(value);
        }

        System.out.print("Wybierz prędkość: ");
        String choose = scanner.nextLine();
        //normal

        Speed userSpeed = Speed.valueOf(choose);

        System.out.println("poruszasz się z prędkością: " + userSpeed + " która wynosi " + userSpeed.getSpeedEnum());

    }
}

 

 

 

1 odpowiedź

+1 głos
odpowiedź 15 stycznia 2017 przez Wojciech Cies Obywatel (1,140 p.)
wybrane 16 stycznia 2017 przez Szymon Ciamaga
 
Najlepsza

Nie do końca jest jasne, czy chodzi o pobranie wg kolejności zdefiniowania zmiennych, czy arbitralne przypisanie kodów. Na wszelki wypadek rozwiązania na dwa sposoby :)

 

enum Speed {
  SLOW(30),
  NORMAL(90),
  FAST(150);

  private final int speedEnum;

  private Speed(int speedEnum) {
    this.speedEnum = speedEnum;
  }

  public void printSpeed() {
    System.out.println(this.speedEnum);
  }

  public int getSpeedEnum() {
    return speedEnum;
  }

  public static Speed convert(int num) {
    if (num >= 0 && num < Speed.values().length) {
      return Speed.values()[num];
    } else {
      throw new IllegalArgumentException("Incorrect index: " + num);
    }
  }

  public static Speed convert2(int num) {
    switch (num) {
      case 10:
        return SLOW;
      case 12:
        return NORMAL;
      case 123:
        return FAST;
      default:
        throw new IllegalArgumentException("Incorrect index: " + num);
    }
  }

 

Podobne pytania

0 głosów
1 odpowiedź 504 wizyt
pytanie zadane 28 maja 2018 w C i C++ przez Sic Dyskutant (8,510 p.)
0 głosów
4 odpowiedzi 1,016 wizyt
pytanie zadane 5 października 2018 w Java przez Potopiec Obywatel (1,550 p.)
0 głosów
1 odpowiedź 452 wizyt
pytanie zadane 14 sierpnia 2018 w Java przez periedynek Obywatel (1,320 p.)

92,453 zapytań

141,262 odpowiedzi

319,085 komentarzy

61,854 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...