Премини към съдържанието
Kasperscy

Въпрос за код има един ред, който не разбирам какво прави

Препоръчан отговор


    В дадения по долу код има един ред, който не разбирам

какво прави  (какво казва) в конкретния случай.

 

 

        for(;;) {
            do {
                hlpobj.showmenu();
            do {
                choise = (char) System.in.read();
            }while(choise == '\n' | choise == '\r'); // Този ред не го разбирам. Ако може да ми го обясни някой
        }while ( !hlpobj.isvalid(choise) );
        if (choise == 'q') break; 
            System.out.println("\n");

 

 


class Uroci{
    void helpon (int what) {
        switch (what) {
        case '1':
            System.out.println("The if:\n");
            System.out.println("if (condition) statement;");
            System.out.println("else statement");
            break;
        case '2':
            System.out.println("The switch:\n");
            System.out.println("switch(expression) {");
            System.out.println("  case constant:");
            System.out.println("    statement sequence");
            System.out.println("    break;");
            System.out.println("}");
            break;
        case '3':
            System.out.println("The for:\n");
            System.out.print("for(init; condition; interation)");
            System.out.println("  statement;");
            break;
        case '4':
            System.out.println("The while:\n");
            System.out.println("while(condition) statement;");
            break;
        case '5':
            System.out.println("The do-while:\n");
            System.out.println("do {");
            System.out.println("  statement");
            System.out.println("} while (condition)");
            break;
        case '6':
            System.out.println("The break:\n");
            System.out.println("break; or break label;");
            break;
        case '7':
            System.out.println("The continue:\n");
            System.out.println("continue; or continue label;");
            break;
        }
        System.out.println();
    }
    void showmenu() {
        System.out.println("Help on:");
        System.out.println("  1. if");
        System.out.println("  2. switch");
        System.out.println("  3. for");
        System.out.println("  4. while");
        System.out.println("  5. do-while");
        System.out.println("  6. break");
        System.out.println("  7. continue\n");
        System.out.println("Choose one (q to quit):");
    }
    boolean isvalid (int ch) {
        if (ch < '1' | ch > '7' & ch != 'q') return false;
        else return true;
    }
}
class urociDemo{
    public static void main(String[] args) 
    throws java.io.IOException{
        char choise;
        Uroci hlpobj = new Uroci();
        
        for(;;) {
            do {
                hlpobj.showmenu();
            do {
                choise = (char) System.in.read();
            }while(choise == '\n' | choise == '\r'); // Този ред не го разбирам. Ако може да ми го обясни някой
        }while ( !hlpobj.isvalid(choise) );
        if (choise == 'q') break; 
            System.out.println("\n");
            
            hlpobj.helpon(choise);
        }
    }
}

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Чете докато не стигне нов ред или Ентер

  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Това да не би да е на "C++" или подобен език? Защо не ползваш таг-а за код? И темата е супер неграмотно написана, заглавието е абсолютно неясно, чете ли правилата на форума? Да не говорим, че такова "choise" не съществува. Предполагам става въпрос за "choice" - избор, освен ако не е някоя твоя функция, което не е ясно от кода.

https://stackoverflow.com/questions/20894986/c-switch-statement-giving-player-another-chance-to-choice

Сподели този отговор


Линк към този отговор
Сподели в други сайтове
преди 6 минути, Raze написа:

Това да не би да е на "C++" или подобен език? Защо не ползваш таг-а за код? И темата е супер неграмотно написана, заглавието е абсолютно неясно, чете ли правилата на форума? Да не говорим, че такова "choise" не съществува. Предполагам става въпрос за "choice" - избор, освен ако не е някоя твоя функция, което не е ясно от кода.

https://stackoverflow.com/questions/20894986/c-switch-statement-giving-player-another-chance-to-choice

Това е Java.

Такова "choise" съществува, променливата си е декларирана в началото на блока. Дори да е правописна/печатна грешка, никой не те спира да сложиш каквото и да е име за идентификатор. По-кадърен текстов редактор или IDE ще те предупреди за това, но същото няма да попречи на кода да си работи (и ще продължи да работи дори ако смениш идентификатора с "asdf"). При езици, които минават през компилатор, такива грешки ще имат значение само докато човек гледа/дебъгва кода.

 

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

2.3 Заглавието на темата трябва да е ясно и точно, да не е съставено единствено от главни букви и да описва максимално съдържанието на самата тема. Теми със заглавия от една дума или от рода на "Помощ!", "Имам проблем", "Спешно" и т.н. се изтриват без предупреждение.

Правила на форума


  • Харесва ми 1

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Значи моя отговор не се приема така ли?

Сподели този отговор


Линк към този отговор
Сподели в други сайтове

Регистрирайте се или влезете в профила си за да коментирате

Трябва да имате регистрация за да може да коментирате това

Регистрирайте се

Създайте нова регистрация в нашия форум. Лесно е!

Нова регистрация

Вход

Имате регистрация? Влезте от тук.

Вход

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.