Do-while и Exception Hadnling - PullRequest
       5

Do-while и Exception Hadnling

0 голосов
/ 13 ноября 2018
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 в тогдашнем Бостоне ..... Я хочу спросить вас ... почему х = 2 ...? Вы можете объяснить почему? ... спасибо

Ответы [ 4 ]

0 голосов
/ 13 ноября 2018

Это просто,

Do do работает таким образом.

Сначала выполняется выполнение части 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 выполняется. Это гарантирует, что условие в то время как не выполняется, и, следовательно, код существует цикл do-while.

0 голосов
/ 13 ноября 2018

цикл do-while выполняется один раз без проверки условия. В этом случае условие продолжения пока цикл равен x == 1. Это потому, что вы установили x = 1 в своем коде выше.

Выполняя до проверки состояния, используя сканер, вы прочитали 2 целых числа, выполнили некоторые операции над ними и распечатали результат. Поскольку логика ожидает, что поток останавливается здесь (это просто чтение 2 целых чисел и результат печати), для x было установлено значение 2, то есть x = 2.

Теперь отвечаю на ваш вопрос, почему x = 2. Это может быть что угодно, кроме 1 , которое завершит цикл while и не допустит дальнейших итераций.

0 голосов
/ 13 ноября 2018

этот код выполняет деление, если вы переставили значение n2 в 0, возникла исключительная ситуация и вывели ошибку , а значение x=1 не изменилось, пока условие истинно и ваш код выполняется снова и хотите ввести. если ваш ввод был истинным (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);

     }
 }
0 голосов
/ 13 ноября 2018

Этот код плохо подходит к его собственной концепции.Тем не менее, Do-While является циклом управления выходом и продолжает выполнять цикл до тех пор, пока x не станет равным ни одному из чисел, кроме 1. То есть, если есть какое-либо изменение в x, кроме 'x = 1', тогда цикл прервется какв цикле перестанет функционировать.Здесь мы используем попытку catch, чтобы предотвратить деление любого числа на ноль, и мы используем x = 2, чтобы выполнить цикл один раз и выйти.

В любом случае, это конструктор концепций, но это не то, как к этому подходить.методология.

...