import java.util.Scanner;
class demo2
{
public static void main(String[] args)
{
Scanner scanner = new Scanner(System.in);
System.out.println("请选择你要使用的计算器功能:");
System.out.println("1:加 2:减 3:乘 4:除 5:平方");
int n = scanner.nextInt();
/*1*/ if (n < 2)
{
System.out.println("请输入第一个数据(必须遵循算数规则):");
long num1 = scanner.nextInt();
System.out.println("请输入第二个数据:");
long num2 = scanner.nextInt();
System.out.println("所得的结果为:"+(num1+num2));
return;
}
/*2*/ if (n>1 || n {
System.out.println("请输入第一个数据(必须遵循算数规则):");
long num1 = scanner.nextInt();
System.out.println("请输入第二个数据:");
long num2 = scanner.nextInt();
System.out.println("所得的结果为:"+(num1-num2));
return;
}
/*3*/ if (n>2 || n {
System.out.println("请输入第一个数据(必须遵循算数规则):");
long num1 = scanner.nextInt();
System.out.println("请输入第二个数据:");
long num2 = scanner.nextInt();
System.out.println("所得的结果为:"+(num1*num2));
return;
}
/*4*/ if (n>3 || n {
System.out.println("请输入第一个数据(必须遵循算数规则):");
long num1 = scanner.nextInt();
System.out.println("请输入第二个数据:");
long num2 = scanner.nextInt();
System.out.println("所得的结果为:"+(num1/num2));
return;
}
/*5*/ if (n>4)
{
System.out.println("请输入平方数据(必须遵循算数规则):");
long num1 = scanner.nextInt();
System.out.println("所得的结果为:"+(num1*num1));
return;
}
}
}
这个我要做的是一个计算器,遇到了3个问题:
1:输入一个数n,用来选择哪个计算(1加法,2减法。。。)我想用if(n=1)、if(n=2)但是报错:错误: 不兼容的类型: int无法转换为boolean
/*1*/ if (n =1)
^
所以我只能把n=1写成 n<2... ; >
2:从第三个开始,也就是我想用乘法的时候(n=3,n=4,n=5)他依然计算的是减法
3、我想做到,比如选择加法,计算完之后,不是直接结束而是跳转到最开始,继续重新选择要使用的计算器功能
求大神指点,刚学没几天,问题比较多,大神见谅
关于第二个问题,题主的代码是
if (n > 1){
做减法
}
if (n > 2){
做乘法
}
若输入3,当程序运行到第一个if语句时由于满足 n > 1的条件,所以还是会先做减法
解决方法可以是
while(1){
输入n
switch(n){
case 1:
{
break;
}
case 2:
{
break;
}
}
}
关于第一个问题,java中比较相等是用"=="号,"="是赋值符号。
楼上说的对,赋值是用 == ,如果想计算结束后重新跳到开始步骤可以写个死循环
谢各位大神。悬赏只有一个,见谅哈