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 =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从入门到放弃》

悬赏有限,不能一一采纳,万分感谢各位大神抽空回答