Java 初学者寻求指导
我正在编写一个非常基本的菜单计算器Java 初学者寻求指导,java,loops,while-loop,switch-statement,Java,Loops,While Loop,Switch Statement,我正在编写一个非常基本的菜单计算器 显示菜单 获取用户选择并基于该选择执行操作 显示结果 循环回到菜单,直到用户输入10退出循环 让我困惑的是在while循环中使用switch语句。输入10应该退出程序,它确实退出了,但只是在一开始。第二次显示菜单并要求输入时,10不会退出程序 我们也非常欢迎任何其他建议 public class MenuCalculator { public static void main(String[] args) {
public class MenuCalculator
{
public static void main(String[] args)
{
showMenu();
}
public static void showMenu()
{
Scanner input = new Scanner(System.in);
//menu display
System.out.println("Calculator Menu");
System.out.println("---------------");
System.out.println("1. Add two integers. ");
System.out.println("2. Add two doubles. ");
System.out.println("3. Subtract two integers. ");
System.out.println("4. Subtract two doubles. ");
System.out.println("5. Multiply two integers. ");
System.out.println("6. Multiply two doubles. ");
System.out.println("7. Divide two integers. ");
System.out.println("8. Divide two douvles. ");
System.out.println("9. Compute a factorial product of a number (n!) ");
System.out.println("10. Exit. ");
System.out.println(" ");
System.out.println("Your choice?");
int userChoice = input.nextInt();
while (userChoice < 10)
{
switch (userChoice)
{
case 1:
System.out.println("Enter the first number * : ");
int addInt1 = input.nextInt();
System.out.println("Enter the 2nd number: ");
int addInt2 = input.nextInt();
System.out.println(add(addInt1, addInt2));
break;
case 2:
System.out.println("Enter the first number !: ");
double plusDub1 = input.nextDouble();
System.out.println("Enter the 2nd number: @");
double plusDub2 = input.nextDouble();
System.out.println(addDbl(plusDub1, plusDub2));
break;
case 3:
System.out.println("Enter the first number: #");
int subInt1 = input.nextInt();
System.out.println("Enter the 2nd number: ");
int subInt2 = input.nextInt();
System.out.println(subtract(subInt1, subInt2));
break;
case 4:
System.out.println("Enter the first number: $");
double subDub1 = input.nextDouble();
System.out.println("Enter the 2nd number: ");
double subDub2 = input.nextDouble();
System.out.println(subtractDbl(subDub1, subDub2));
break;
case 5:
System.out.println("Enter the first number: %");
int multInt1 = input.nextInt();
System.out.println("Enter the 2nd number: ");
int multInt2 = input.nextInt();
System.out.println(multiply(multInt1, multInt2));
break;
case 6:
System.out.println("Enter the first number: ^");
double multDub1 = input.nextDouble();
System.out.println("Enter the 2nd number: ");
double multDub2 = input.nextDouble();
System.out.println(multiplyDbl(multDub1, multDub2));
break;
case 7:
System.out.println("Enter the first number: &");
int divInt1= input.nextInt();
System.out.println("Enter the 2nd number: ");
int divInt2= input.nextInt();
System.out.println(divide(divInt1, divInt2));
break;
case 8:
System.out.println("Enter the first number: -");
double divDub1= input.nextDouble();
System.out.println("Enter the 2nd number: ");
double divDub2= input.nextDouble();
System.out.println(divideDbl(divDub1, divDub2));
break;
case 9:
System.out.println("Enter a number: ");
int factoNum= input.nextInt();
System.out.println(factorialProduct(factoNum));
break;
default:
}//end switch
showMenu();
}//end while
}
public static int add(int n1, int n2)
{
//declare variables
int sum;
// sum and return
sum = n1 + n2;
return sum;
}
public static double addDbl(double n1, double n2)
{
//declaration
double sum;
// sum and return
sum = n1 + n2;
return sum;
}
public static int subtract(int n1, int n2)
{
int total;
total = n1 - n2;
return total;
}
public static double subtractDbl(double n1, double n2)
{
double total;
total = n1 - n2;
return total;
}
public static int multiply(int n1, int n2)
{
int total;
total = n1 * n2;
return total;
}
public static double multiplyDbl(double n1, double n2)
{
double total;
total = n1 * n2;
return total;
}
public static int divide(int n1, int n2)
{
int total;
total = n1 / n2;
return total;
}
public static double divideDbl(double n1, double n2)
{
double total;
total = n1 / n2;
return total;
}
public static int factorialProduct(int n)
{
if (n == 0)
{
return 1;
}
else
{
return n * factorialProduct(n - 1);
}
}
}
公共类菜单计算器
{
公共静态void main(字符串[]args)
{
showMenu();
}
公共静态无效显示菜单()
{
扫描仪输入=新扫描仪(System.in);
//菜单显示
System.out.println(“计算器菜单”);
System.out.println(“--------------”;
System.out.println(“1.添加两个整数”);
System.out.println(“2.添加两个double.”);
System.out.println(“3.减去两个整数”);
System.out.println(“4.减去两个双精度。”);
System.out.println(“5.两个整数相乘”);
System.out.println(“6.乘两倍”);
System.out.println(“7.除两个整数”);
System.out.println(“8.将两个二等分”);
System.out.println(“9.计算一个数(n!)的阶乘乘积”;
System.out.println(“10.Exit”);
System.out.println(“”);
System.out.println(“您的选择?”);
int userChoice=input.nextInt();
while(userChoice<10)
{
开关(用户选择)
{
案例1:
System.out.println(“输入第一个数字*:”;
int addInt1=input.nextInt();
System.out.println(“输入第二个数字:”);
int addInt2=input.nextInt();
系统输出打印项次(添加(添加1,添加2));
打破
案例2:
System.out.println(“输入第一个数字:”;
double plusDub1=input.nextDouble();
System.out.println(“输入第二个数字:@”);
double plusDub2=input.nextDouble();
System.out.println(addDbl(plusDub1,plusDub2));
打破
案例3:
System.out.println(“输入第一个数字:#”);
int subInt1=input.nextInt();
System.out.println(“输入第二个数字:”);
int subInt2=input.nextInt();
System.out.println(减法(subInt1,subInt2));
打破
案例4:
System.out.println(“输入第一个数字:$”;
double=input.nextDouble();
System.out.println(“输入第二个数字:”);
double=input.nextDouble();
系统输出println(减DBL(减B1,减B2));
打破
案例5:
System.out.println(“输入第一个数字:%”);
int multInt1=input.nextInt();
System.out.println(“输入第二个数字:”);
int multInt2=input.nextInt();
System.out.println(乘法(multiply(multInt1,multInt2));
打破
案例6:
System.out.println(“输入第一个数字:^”);
double multDub1=input.nextDouble();
System.out.println(“输入第二个数字:”);
double multDub2=input.nextDouble();
System.out.println(multilydbl(multDub1,multDub2));
打破
案例7:
System.out.println(“输入第一个数字:&”);
int divInt1=input.nextInt();
System.out.println(“输入第二个数字:”);
int divInt2=input.nextInt();
System.out.println(divide(divInt1,divInt2));
打破
案例8:
System.out.println(“输入第一个数字:-”);
double divDub1=input.nextDouble();
System.out.println(“输入第二个数字:”);
double divDub2=input.nextDouble();
System.out.println(divideDbl(divDub1,divDub2));
打破
案例9:
System.out.println(“输入一个数字:”);
int factoNum=input.nextInt();
System.out.println(factorialProduct(factoNum));
打破
违约:
}//终端开关
showMenu();
}//结束时
}
公共静态整数添加(整数n1,整数n2)
{
//声明变量
整数和;
//求和与回报
总和=n1+n2;
回报金额;
}
公共静态双addDbl(双n1,双n2)
{
//声明
双和;
//求和与回报
总和=n1+n2;
回报金额;
}
公共静态整数减法(整数n1,整数n2)
{
整数合计;
总数=n1-n2;
返回总数;
}
公共静态双减法DBL(双n1,双n2)
{
双倍总数;
总数=n1-n2;
返回总数;
}
公共静态整数乘法(整数n1,整数n2)
{
整数合计;
总数=n1*n2;
返回总数;
}
公共静态双倍频BL(双n1,双n2)
{
双倍总数;
总数=n1*n2;
返回总数;
}
公共静态整数除法(整数n1,整数n2)
{
整数合计;
总数=n1/n2;
返回总数;
}
公共静态双除法DBL(双n1,双n2)
public static void main() {
while (true) {
// display your menu
userChoice = nextInt()
switch (userChoice) {
case 1:
...
case 2:
...
...
case 10:
return; // exits from main
}
}
}