Java do-while循环仅执行2次运行[重复]

问题描述 投票:-2回答:1

我正在尝试做一个简单的程序,用户选择一个数字1,2,3进行简单的计算。该程序将继续运行,除非用户在菜单上询问时输入“ 0”。只要他们选择1、2或3,就会向用户显示相同的菜单。如果用户选择0,则程序将终止。

我拥有的代码:

import java.util.Scanner;
 public class QuadraticSolving {

public static void main(String[] args) {
    // Declarations
    int user;
    double a;
    double b;
    double c;
    int num1;
    int num2;
    Scanner in = new Scanner(System.in);// Create scanner in
    do{
        System.out.print("Press 0 to exit, 1 for Multiplication Solving, 2 for Sum or 3 for Print Message:");// main menu
        user = in.nextInt();
    }
   while(user == 0);
    {  
        if(user == 1)// multiplication solver
        {
            System.out.print("Enter a:");
            a = in.nextDouble();
            System.out.print("Enter b:");
            b = in.nextDouble();
            System.out.print("Enter c:");
            c = in.nextDouble();
            System.out.println(a*b*c);
        }
        else if(user == 2)// addition
        {
            System.out.print("Enter an integer:");
            num1 = in.nextInt();
            System.out.print("Enter another integer:");
            num2 = in.nextInt();
            System.out.println(num1 + num2);
           // System.out.println(allSum(num1,num2));
            System.out.print("");
        }
        else if (user == 3)// welcome statement
        {
            System.out.println("Welcome to IT");
        }
        else
        {
            System.out.println("Bye");
            break;
        }
        System.out.print("Press 0 to exit, 1 for Multiplication Solving, 2 for Sum or 3 for Print Message:");
        user = in.nextInt();     
    }
}

第一次运行菜单后,它运行完美。在第二次运行期间,无论您选择哪种选择,它始终会终止程序。

Outcome example here

[无论何时我为所有运行输入“ 0”,它都会变成一个无限循环。我可以停止它的唯一方法是结束代码的执行。Endless example here

我不明白为什么该程序第一次只能完美运行,而第二次运行它会自行终止。另外,我不明白为什么用户输入“ 0”时它会陷入无限循环。为什么会发生这种情况的任何解释? (很抱歉,我是编程新手。谢谢)

java do-while
1个回答
0
投票

[当用户键入0时,它进入一个无穷循环,因为while表达式正在检查键入的数字是否等于0且没有区别

并且第一次运行可以,因为while以后运行的代码没有重复,它只执行一次,所以代码应该在这里]]

do {
    .
    . // Here you scan
    . // Here you paste the logic
    .
} while (user != 0);
© www.soinside.com 2019 - 2024. All rights reserved.