package learnjava;
import java.util.Scanner;
public class exception {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int x =1;
do {
try {
System.out.println("Input first number : ");
int n1 = input.nextInt();
System.out.println("Input second number : ");
int n2 = input.nextInt();
int sum = n1 / n2;
System.out.println("result = "+sum);
x = 2;
} catch (Exception e) {
System.out.println("Error");
}
} while (x == 1);
}
}
Я смотрел обучающие программы по java в thenewboston ..... Я хочу спросить вас ... почему x = 2 ...? Вы можете объяснить почему? ... спасибо
в чем вопрос? Вы устанавливаете x равным 2 через x=2, и теперь вы спрашиваете, почему x равен 2?
когда пользователь вводит все правильные целочисленные входы, вы не хотите повторно просить пользователя ввести что-то, поэтому цикл будет прерван, когда x!=1
Если вы видели учебник, в котором пропагандируется написание кода, похожего на этот, то я бы посоветовал перейти на другой учебник.
Угги. Java имеет тип Boolean, и здесь его следует использовать. Я бы заподозрил качество используемых вами руководств, если бы это был их пример кода!
Он объяснил, что в эту секунду: Учебник по программированию на Java - 82 - Обработка исключений
@AKSW ... да..я только учусь пониманию с ютуба ....




Этот код плохо подходит к собственной концепции. Тем не менее, Do-While является циклом управления выходом и продолжает выполнять цикл до тех пор, пока x не станет равным любому числу, кроме 1. То есть, если есть какое-либо изменение в x, кроме того, что x = 1, цикл прервется, как в шлейфе перестанет работать. Здесь мы используем try catch, чтобы предотвратить деление любого числа на ноль, и мы используем x = 2 для однократного выполнения цикла и выхода.
В любом случае, это конструктор концепций, но это не то, как можно подходить к этой методологии.
Цикл do-while выполняется один раз без проверки условия.
В этом случае условием продолжения цикла while является x == 1. Это потому, что вы установили x = 1 в приведенном выше коде.
Выполняя перед проверкой условия, используя сканер, вы читаете 2 целых числа, выполняете с ними некоторые операции и распечатываете результат.
Поскольку логика ожидает, что поток здесь остановится (то есть просто чтение 2 целых чисел и печать результата), x был установлен в 2, то есть x = 2.
Теперь отвечая на ваш вопрос, почему именно x = 2. Это может быть что угодно, кроме 1, который завершит цикл while и не допустит дальнейших итераций.
этот код выполняет деление, если вы установили значение n2 на 0, произошло исключение и напечатали ошибка, а значение x=1 не было изменено, условие while истинно и ваш код снова работает и требуется ввод. если ваш ввод был истинным (n2!=0), ваша операция выполнена и значение x изменилось на два x=2. когда проверено условие while, результат ложный, и цикл do while прерывается.
Я пишу комментарий в вашем коде.
package learnjava;
import java.util.Scanner;
public class exception {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int x =1;
do {
try {
System.out.println("Input first number : ");
int n1 = input.nextInt();
System.out.println("Input second number : ");
int n2 = input.nextInt();
int sum = n1 / n2;//if your n2 input was 0 exception happened and go to catch block.
System.out.println("result = "+sum);
x = 2;// if one time your code execute without exception the x changed to 2. if exception happened your code execute again.
} catch (Exception e) {
System.out.println("Error");
}
} while (x == 1);
}
}
@WildanAlifR В этом случае цикл будет продолжаться до тех пор, пока не обнаружит ошибку, а затем выйдет из цикла, поскольку x=2 закодирован в catch
@WildanAlifR, если произошло исключение input (n2 == 0) и прерывание do-while. иначе продолжайте снова делать-а.
Это просто,
Так работает do while.
Сначала выполняется часть do, если условие в цикле while выполняется, цикл do выполняется снова. Это будет продолжаться до тех пор, пока не будет выполнено условие в цикле while.
do {
//work is done.
//now lets us change the condition so that we can get out of this do-while loop.
// this condition is nothing but setting x equal to nay value other than 1. It can be 2 or 10000 or -1.
} while (x == 1);
Итак, как только функциональность цикла do удовлетворена, выполняется x == 2. Это гарантирует, что условие в while не выполняется и, следовательно, в коде существует цикл do-while.
так что цикл оборвется, не очень хороший код, если его нужно объяснять. Лучше использовать полезные имена переменных