Diskuze: Ošetření proměnných jako v C#?

Java Java Ošetření proměnných jako v C#?

Avatar
relycanx
Člen
Avatar
relycanx:

Ahoj, v minulosti, když jsem se učil C#, tak se tam daly krásně ošetřovat proměnné dvěma řádky, kde uživatel musel např. zadat číslo, jinak byl spuštěn cyklus, dokud se tak nestalo (mluvím o článku č. 7, v základních konstrukcích jazyka C#). Na netu jsem našel jen tento způsob níže, který mi ani správně nefunguje - po prvním pokusu program již nepřijímá vstup a aplikace se zacyklí. V čem je prosím problém? Dají se vstupy ošetřit i nějakým lepším způsobem, stejně jako u C#? Děkuji.

Scanner sc = new Scanner(System.in);
int cislo;
boolean omyl = true;

while(omyl == true)
{
     System.out.println("Zadejte číslo");

     try
     {
          cislo = sc.nextInt();
          omyl = false;
     }
     catch(Exception e)
     {
          System.out.println("Zadávejte pouze čísla!");
     }
}
Editováno 30.3.2014 18:00
 
Odpovědět 30.3.2014 17:59
Avatar
adder
Člen
Avatar
Odpovídá na relycanx
adder:

Problém je podle mě v tom, že do čísla se ulože např 'e' a try blok se ani nevyvolá.

Scanner sc = new Scanner(System.in, "windows-1250");

        int cislo;
        boolean omyl = false;

    while(omyl != true)
        {

             System.out.println("Zadejte číslo");
             String c = sc.nextLine();
             try
             {
                  cislo = Integer.parseInt(c);
                  omyl = true;
             }
             catch(Exception e)
             {
                  System.out.println("Zadávejte pouze čísla!");
             }
        }

Zkusil jsem tohle a funguje to. :)

Nahoru Odpovědět 30.3.2014 18:26
I’m going to lay this brick as perfectly as a brick can be laid.
Avatar
relycanx
Člen
Avatar
Odpovídá na adder
relycanx:

aha, takže se to nejdřív musí přeparsovat přes další proměnnou? tak to pak jo, dík. ach jo, takových problémů s jedním ošetřením. to bude boj, až tam bude víc vstupů najednou :/

 
Nahoru Odpovědět 30.3.2014 19:15
Avatar
adder
Člen
Avatar
adder:

nejspíš ano. to uděláš do metody, kterou budeš potom používat a půjde to v pohodě. :)

Nahoru Odpovědět 30.3.2014 21:05
I’m going to lay this brick as perfectly as a brick can be laid.
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 4 zpráv z 4.