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 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)
  • ¥15 请解包一个pak文件