概述
java操作符理解
先看个思维导图呗!
- 算术操作符
1.基本算数操作符
加 减 乘 除 + - * /
public class HelloWorld {
public static void main(String[] args) {
int i = 6;
int j = 2;
int a = i+j;
System.out.println(a);//8
int b = i - j;
System.out.println(b);//4
int c = i*j;
System.out.println(c);//12
int d = i /j;
System.out.println(d);//3
}
}
自增 自减 ++ - -
public class HelloWorld {
public static void main(String[] args) {
int i = 6;
System.out.println(i++);//6(先执行,后加1)
System.out.println(i);//7
System.out.println(i--);//7(先执行,后减1)
}
}
2.练习
使用Scanner从控制台获取两个数字,然后计算这两个数字的和
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("请输入两个数字:");
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
System.out.printf("第一个整数:%d%n",a);
int b=scanner.nextInt();
System.out.printf("第二个整数:%d%n",b);
int c=a+b;
System.out.printf("两个数据的和是:%d%n",c);
}
}
如果有任何运算单元的长度超过int,那么运算结果就按照最长的长度计算
public class HelloWorld {
public static void main(String[] args) {
int i=1;
long j=2;
int k=(int)(i+j);//i+j的运算结果是long型,所以要进行强制转换
long l=i+j;//结果类型是long
float a=1.0f;
double b=2.0;
float c=(float)(a+b);//a+b的运算结果是float型,所以要进行强制转换
double d=a+b;//结果类型是double
}
}
如果任何运算单元的长度都不超过int,那么运算结果就按照int来计算
public class HelloWorld {
public static void main(String[] args) {
byte a = 1;
byte b= 2;
byte c=(byte)(a+b);//虽然a b都是byte类型,但是运算结果是int类型,需要进行强制转换
int d=a+b;//运算结果是int类型
}
}
% 取余数,又叫取模。
public class HelloWorld {
public static void main(String[] args) {
byte a = 3;
byte b= 2;
System.out.println(a%b); //输出为1
}
}
自增 自减操作符置前以及置后的区别
i++; 先取值,再运算
++i; 先运算,再取值
public class HelloWorld {
public static void main(String[] args) {
int i = 5;
System.out.println(i++); //输出5
System.out.println(i); //输出6
int j = 5;
System.out.println(++j); //输出6
System.out.println(j); //输出6
}
}
public class HelloWorld {
public static void main(String[] args) {
int i = 1;
int j = ++i + i++ + ++i + ++i + i++;
// 2 2 4 5 5 = 18
System.out.println(j);//18
}
}
使用Scanner收集你的身高体重,并计算出你的BMI值是多少
BMI的计算公式是 体重(kg) / (身高*身高)
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入身高(m):");
float a=scanner.nextFloat();
System.out.println("请输入体重(kg):");
float b=scanner.nextFloat();
float BMI=b/(a*a);
System.out.println("当前的BMI是:"+BMI);
if(BMI<18.5){
System.out.println("体重过轻!");
}else if(BMI>=18.5||BMI<24){
System.out.println("正常范围!");
}else if(BMI>=24||BMI<27){
System.out.println("体重过重!");
}
else if(BMI>=27||BMI<30){
System.out.println("轻度肥胖!");
}
else if(BMI>=30||BMI<35){
System.out.println("正常范围!");
}else if(BMI>=35){
System.out.println("重度肥胖!");
}
}
}
- 关系操作符
1.关系操作符
public class HelloWorld {
public static void main(String[] args) {
int a = 5;
int b = 6;
int c = 5;
System.out.println(a>b); //返回 false
System.out.println(a>=c); //返回 true
System.out.println(a==b); //返回false
System.out.println(a!=b);//返回true
}
}
2.练习
借助Scanner获取控制台输入的两个任意数字,然后使用关系操作符,判断两个值之间的关系。
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
int a=scanner.nextInt();
System.out.println("第一个整数:"+a);
int b=scanner.nextInt();
System.out.println("第二个整数:"+b);
System.out.println(a+">"+b+":"+(a>b));
System.out.println(a+">="+b+":"+(a>=b));
System.out.println(a+"<"+b+":"+(a<b));
System.out.println(a+"<="+b+":"+(a<=b));
System.out.println(a+"="+b+":"+(a==b));
System.out.println(a+"!"+b+":"+(a!=b));
}
}
- 逻辑操作符
1.长路与(&) 和 短路与(&&)
区别:
长路与 两侧,都会被运算
短路与 只要第一个是false,第二个就不进行运算了
public class HelloWorld {
public static void main(String[] args) {
//长路与 无论第一个表达式的值是true或者false,第二个的值,都会被运算
int i = 2;
System.out.println( i== 1 & i++ ==2 ); //无论如何i++都会被执行,i++ ==2返回true,然后i的值变成了3
System.out.println(i);
//短路与 只要第一个表达式的值是false的,第二个表达式的值,就不需要进行运算了
int j = 2;
System.out.println( j== 1 && j++ ==2 ); //因为j==1返回false,所以右边的j++就没有执行了,所以j的值,还是2
System.out.println(j);
}
}
2.长路或 (|)和 短路或(||)
区别:
长路或 两侧都会被运算
短路或 只要第一个是true的,第二个就不进行运算了
public class HelloWorld {
public static void main(String[] args) {
//长路或 无论第一个表达式的值是true或者false,第二个的值,都会被运算
int i = 2;
System.out.println( i== 1 | i++ ==2 ); //无论如何i++都会被执行,i++ ==2返回true,然后i的值变成了3
System.out.println(i);
//短路或 只要第一个表达式的值是true的,第二个表达式的值,就不需要进行运算了
int j = 2;
System.out.println( j== 2 || j++ ==2 ); //因为j==2返回true,所以右边的j++就没有执行了,所以j的值,还是2
System.out.println(j);
}
}
3.取反( !)
真变为假 ,假变为真。
public class HelloWorld {
public static void main(String[] args) {
boolean a = true;
System.out.println(a); //输出true
System.out.println(!a);//输出false
}
}
4.异或( ^ )
不同,返回真 ;相同,返回假。
public class HelloWorld {
public static void main(String[] args) {
boolean i = true;
boolean j = false;
System.out.println(i^j); //不同返回真
System.out.println(i^!j); //相同返回假
}
}
5.练习
public class HelloWorld {
public static void main(String[] args) {
int i = 1;
boolean b = !(i++ == 3) ^ (i++ ==2) && (i++==3);//(i++==3)不会被执行
System.out.println(b);
System.out.println(i);
}
}
- 位操作符
注:位操作符在实际工作中用的并不常见,工作用到了,再回来补充。
- 赋值操作符
1.赋值操作
赋值操作的操作顺序是从右到左
public class HelloWorld {
public static void main(String[] args) {
int i = 5+5;//首先进行5+5的运算,得到结果10,然后把10这个值,赋给i
}
}
2.对本身进行运算,并赋值
i+=2;等同于i=i+2;
其他的 -= , *= , /= , %= , &= , |= , ^= , >>= , >>>= 类似。
public class HelloWorld {
public static void main(String[] args) {
int i =3;
i+=2;
System.out.println(i);//5
int j=3;
j=j+2;
System.out.println(j);//5
}
}
3.练习
public class HelloWorld {
public static void main(String[] args) {
int i = 1;
i+=++i;
System.out.println(i);//3
}
}
- 三元操作符
1.三元操作符
表达式?值1:值2
如果表达式为真 返回值1
如果表达式为假 返回值2
public class HelloWorld {
public static void main(String[] args) {
int i = 5;
int j = 6;
int k = i < j ? 11 : 1;
// 相当于
if (i < j) {
k = 11;
} else {
k = 1;
}
System.out.println(k);//11
}
}
2.练习
通过Scanner输入一个1-7之间的整数,使用三元操作符判断是工作日还是周末?
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
int i;
int j = 6;
Scanner scanner=new Scanner(System.in);
System.out.println("今天是周几?");
i=scanner.nextInt();
String k = i < j ? "今天是工作日" :"今天是周末";
System.out.println(k);
}
}
- Scanner
1.使用Scanner读取整数、浮点数和字符串
在业务上读取了整数/浮点数后,接着读取字符串,需要连续执行两次nextLine(),第一次是取走回车换行,第二次才是读取真正的字符串
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner s = new Scanner(System.in);
int i = s.nextInt();
System.out.println("读取的整数是:"+ i);
float j=s.nextFloat();
System.out.println("读取的浮点数是:"+ j);
String a = s.nextLine();
String k = s.nextLine();
System.out.println("读取的字符串是:"+k);
}
}
最后
以上就是曾经烤鸡为你收集整理的java-操作符(算术/关系/逻辑/位/赋值/三元运算符)的全部内容,希望文章能够帮你解决java-操作符(算术/关系/逻辑/位/赋值/三元运算符)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复