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 =1)
{
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:通过输入数字选择计算器功能(1、加法 2、减法 。。。),我想用if(n=1),if(n=2) 这种的,但是报错:错误: 不兼容的类型: int无法转换为boolean
/*1*/ if (n =1)
^
所以只能用了n<2表示n=1... >
2:从选择乘法开始,也就是n=3(n>2 || n<4)时开始,计算的结果是减法,选择除法也是 >
3: 我想做到输入数据算出结果后,不是直接结束,而是跳转到最前面,继续重新选择计算器功能
求大神解惑,新学java,懂得很少,问题也比较多
第一个问题 :if使用的是判断符==而不是赋值符=
第二个问题:你使用的短路或,意思是只要一个成功那么这个条件就是成功的,而非0数据n都是代表ture
第三个问题:加死循环,在加break的判断标识,什么时候想退出,就执行break条件
判断是否等于1,不能用n=1,应该是n==1
第一个问题:n=1 这句话的返回值是你也就是1 而n==1的返回值才是boolean型 你也可以使用 switch这种选择结构 记得不要忘记break
第二个问题:因为你输入一个n>3的数 显然也大于2所以在上一个if就return了 不会执行n>3的语句
第三个问题:你可以使用wile(true){你上面的代码块} 去掉里面的return 即可
谢谢
第1、2个问题都可以归结为if判断符为问题,需要用==判断而不是赋值符=,知道了这个,第二个问题也就不需要用大于小于判断了;
第2个问题,如果非要这么判断,应该用&&吧,即大于2又小于4的整数才是3啊;
第3个问题:见楼上的回答;
个人觉得可以试试switch-case的用法;
第一个问题解决了的话第二个问题就应该不会出现了,都用==,第三个问题可以把代码写在一个死循环里面,每次算完一轮可以加个提示比如输入#结束,然后判断输入是否等于#,等于#就break。
另外觉得这个代码可以简化一下哦。1-4的输入语句都是一样的,所以应该可以做个判断
...
if(n>=1&&n<=4){ //判断是否为1-4
//这里都是一样的
System.out.println("请输入第一个数据(必须遵循算数规则):");
long num1 = scanner.nextInt();
System.out.println("请输入第二个数据:");
long num2 = scanner.nextInt();
//然后再分情况输出结果
if(n==1)
//输出..
}
else if(n==5)
{
.....
}
...
兄弟,你这基础也是没谁了哈,“=”这个是赋值,“==”才是判断。至于想一直计算可以用while循环,写成死循环也不大好,你可以根据需要然条件不成立循环结束就好了。比如while(n!=-1),这样当你输入-1的时候就结束了
你需要一本书,叫
你需要一本书,叫《Java从入门到放弃》
悬赏有限,不能一一采纳,万分感谢各位大神抽空回答