zf934591037 2017-07-16 15:48 采纳率: 100%
浏览 763
已采纳

新学java遇到问题了,求大神指点

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、我想做到,比如选择加法,计算完之后,不是直接结束而是跳转到最开始,继续重新选择要使用的计算器功能

求大神指点,刚学没几天,问题比较多,大神见谅
  • 写回答

4条回答 默认 最新

  • Max_Loop 2017-07-17 06:49
    关注

    关于第二个问题,题主的代码是

     if (n > 1){
         做减法
     }
     if (n > 2){
         做乘法
     }
    

    若输入3,当程序运行到第一个if语句时由于满足 n > 1的条件,所以还是会先做减法
    解决方法可以是

     while(1){
        输入n
        switch(n){
            case 1:
                            {
                                break;
                            }
            case 2:
                            {
                                break;
                            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn