Рубрики
Без рубрики

Основы Java #12

Эта статья посвящена операторам switch и циклам. Оператор Switch Предположим, что вы создали… С пометкой java, программирование, учебное пособие, новички.

Эта статья посвящена операторам switch и циклам.

Предположим, вы создали веб-сайт, и пользователь пытается войти на него. Вы просите пользователя ввести свой адрес электронной почты. Затем вы проверяете, хранится ли это электронное письмо в вашей базе данных, и если да, то вы выбираете его роль пользователя (администратор, автор блога, читатель). Если почта не найдена, пользователь является гостем. После этого вы хотите распечатать эти роли пользователей. Для реализации этого вы можете легко использовать операторы switch. Посмотрите на приведенный ниже блок кода (предположим, вы уже извлекли роль пользователя из базы данных в строковую переменную с именем userole ).

switch (userRole) {
    case "admin":
        System.out.println("Hi you are an admin");
        break;
    case "blog writer":
        System.out.println("Hi you are a blog writer");
        break;
    case "reader":
        System.out.println("Hi you are a reader");
        break;
    default:
        System.out.println("Hi you are a guest. Please register to log in.");
}

Здесь в первом случае проверяется, является ли значение роли пользователя “администратор”. Если это так, то будет напечатано “Привет, вы администратор”. Вы можете видеть, что я добавил break после заявления о печати. Что делает break , так это то, что выходит из операторов switch. Это означает, что как только конкретный случай будет достигнут, никакие другие случаи оцениваться не будут. Вы просто выйдете из блока переключения. Тот же процесс происходит в случаях “автор блога” и “читатель”. Далее следует случай, когда вы не смогли найти адрес электронной почты в базе данных. Следовательно, у этого электронного письма еще нет роли пользователя . ТАКИМ образом, по default в последнем случае будет выведен оператор ‘guest’. Там мы не использовали break . Это связано с тем, что по умолчанию является последним случаем в блоке переключения. Таким образом, он автоматически выйдет из блока переключения. Здесь не требуется оператор break . Это может быть немного запутанно для понимания но как только вы привыкнете к этому, применение операторов переключения станет удобным.

для цикла

Подумайте, что вы хотите напечатать числа от 1 до 5. Тогда вы будете думать, что вам нужно написать println() строку 5 раз. Но что, если у вас есть возможность написать только один println() и повторить его 5 раз? Звучит здорово, верно. Давайте посмотрим, как мы можем это сделать.

for (int i = 1; i <= 5; i++)
    System.out.println(i);

Давайте оценим код. Здесь мы используем итерации, используя цикл for. Как вы можете видеть, я объявил переменную я внутри круглой скобки для() . После этого мы должны указать диапазон для “i”. Здесь мы хотим напечатать числа от 1 до 5. Поэтому i должен повторяться от 1 до 5. Итак, я упомянул как я и после точки с запятой (;) Я заявил, что i . Это означает i переходит от 1 к 5. Вы также можете записать его как for (int; i < 6; i++) . Здесь также вы можете получить тот же результат. Внутри цикла ‘for()’ вы должны написать строки кода, которые должны быть выполнены. Здесь, поскольку мы пишем только одну строку кода, нам не нужно использовать фигурные скобки.

Циклы For используются в ситуациях, когда количество итераций известно заранее.

Задача

Учитывая массив, books = {“Сумерки”, “Новолуние”, “Затмение”, “Рассвет”, “Безопасное небо”, “Бегущий на воздушном змее”, “Голодные игры”} выведите все его элементы с помощью цикла for.

Как вы закодировали вышеуказанную задачу? Дай угадаю. Я предполагаю, что вы ввели диапазон в цикле for, например (int; i<7; i++), и напечатали элементы, вызвав индекс. Однако есть более простой способ выполнить ту же задачу. Ознакомьтесь с этим кодом.

String[] books = {"Twilight", "New moon", "Eclipse", "Breaking dawn", "Safe Heaven", "Kite Runner", "Hunger Games"};
for (String book : books)
    System.out.println(book);

Здесь строка book в круглых скобках ссылается на один элемент в массиве books . Таким образом, это позволит точно напечатать все элементы в массиве books . Отрицательной стороной этого метода является то, что вы можете выполнять итерации только от начала до конца. Как будто вы не можете получить результат в виде Голодных игр, Бегущего воздушного змея, … Сумеречный (справа налево) порядок. А также, поскольку у вас нет доступа к индексу, вы не сможете узнать значение индекса конкретного элемента при использовании этого метода.

Что делать, если вы заранее не знаете количество итераций? Затем вы можете использовать “цикл while”. Проверьте приведенный ниже код;

int i = 0;
while(i < 10) {
    System.out.println(i);
    i++;
}

В приведенном выше коде мы сначала объявили целочисленную переменную i и инициализировал его в ноль. Строка кода while(i<10) гарантирует, что значение i всегда меньше 10. Это означает, что код внутри цикла while() будет выполняться только если i меньше 10. Затем мы печатаем i и увеличьте его на единицу.

Циклы While можно использовать в условиях, когда вы заранее не знаете количество итераций.

Предположим, в случае, когда вы хотите, чтобы пользователь добавил имена тем, но вы не знаете количество доступных тем. Что вы можете сделать в таком случае? Вы должны использовать “цикл while”, так как вы не знаете количество итераций здесь. Вы можете попросить пользователя ввести какое-нибудь слово, например “выйти” или “закончить”, если он ввел все предметы. Затем вы можете запустить цикл только в том случае, если входное слово не равно завершающему слову. Пройдите по приведенному ниже коду.

Scanner userInput = new Scanner(System.in);
String input = "";
int count = 0;
while (!input.equals("quit")) {
    System.out.print("Subject: ");
    input = userInput.nextLine().toLowerCase();
    count += 1;
}
int subjectCount = count - 1;
System.out.println("Number of subjects = " + subjectCount);

В приведенном выше коде мы приняли пользовательский ввод в качестве объекта класса Сканер , а затем прочитали строку и сохранили в строке вход . Здесь вы можете видеть, что я использовал метод toLowerCase() . Зачем нам это нужно? Посмотрите на условие внутри круглой скобки цикла while. Что это означает, что значение, хранящееся в input string , не может быть равно ‘quit’. Все буквы в слове “выйти” написаны в нижнем регистре. Поэтому, если пользователь ввел “Выйти” или “ВЫЙТИ”, цикл не завершится. Поэтому, чтобы избежать этих замешательств, мы должны преобразовать вводимые пользователем данные в нижний регистр.

выполнять циклы while

Есть только одно отличие в цикле “делай, пока” по сравнению с циклами “пока”. В цикле while операторы будут выполняться тогда и только тогда, когда условие, заданное в цикле, равно true. Но в циклах ‘do-while’ операторы выполняются один раз перед проверкой условий, заданных для цикла. Проверьте следующий код.

int i = 0;
do {
    System.out.println(i);
    i++;
} while(i < 10);

Здесь сначала выполняется метод println() и выводится ‘0’. После этого он увеличит его значение до 1. Тогда принимается во внимание только условие в цикле while. Из-за этого мы можем сказать, что циклы “do-while” определенно будут выполняться “по крайней мере” только один раз.

И на этом мы можем завершить эту статью:)

Оригинал: “https://dev.to/chathurashmini/basics-of-java-12-4gnc”