Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Proc ma promenna zapornou hodnotu

Aktivity
Avatar
josef klouda
Člen
Avatar
josef klouda:13.2.2022 12:43
public class MyClass {
    public static void main(String args[]) {
        String[] someDays = {"Tuesday","Thursday",
                "Wednesday","Monday",
                "Saturday","Sunday",
                "Friday"};
        List<String> days = Arrays.asList(someDays);


        int docount=-1;
        do{
        docount++;
        }while(!days.get(docount).equals("Monday"));

    }
     System.out.println("Counter is:"+ docount+ "and day is:"+days);
}

Zkusil jsem: Ahoj, proc nastavili promennou na -1 . To je nejake pravidlo u do..while ? Dekuji

Chci docílit: Pochopeni zaporne hodnoty v promenne

 
Odpovědět
13.2.2022 12:43
Avatar
Atrament
Tvůrce
Avatar
Odpovídá na josef klouda
Atrament:13.2.2022 14:28

Není to pravidlo do..while, je to pravidlo, že všechno je indexováno od nuly, a protože někdo kdo psal tento příšerný a nepříčetný kus kódu zvolil do..while, ve kterém se nejprve zvedne hodnota docount, která se teprve pak použije pro získání prvku z listu, tak musel začít -1.
Správně by to mělo vypadat nějak takto:

public static void main(String[] args) {
    List<String> days  = List.of("Tuesday", "Thursday",  "Wednesday", "Monday", "Saturday", "Sunday", "Friday");
    int docount = days.indexOf("Monday");
    System.out.println("Counter is:" + docount + " and day is:" + days.get(docount));
}
 
Nahoru Odpovědět
13.2.2022 14:28
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.