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 调用函数时,无关变量的改变引起函数值的改变
  • ¥15 xy坐标转化为经纬度坐标
  • ¥15 一般三角模糊数的上界值和下届值取中值的多少比较合理?
  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥20 Hbase启动失败,无法启动HMaster
  • ¥15 sqpingboot在父模块已经引入了mybatisplus 在子组件不写版本号还是报错
  • ¥20 Lumerical FDTD solutions 中模型的相对阻抗,有效介电常数和有效磁导率的实部和虚部的数据如何获得?
  • ¥100 sql reporting service 远程smtp服务器配置支持
  • ¥15 ppyoloe_r带角度目标检测,loss_cls没法收敛
  • ¥15 淘宝交易指数如何解读,其关联的数据指标是什么