我是靠谱客的博主 曾经烤鸡,最近开发中收集的这篇文章主要介绍java-操作符(算术/关系/逻辑/位/赋值/三元运算符),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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-操作符(算术/关系/逻辑/位/赋值/三元运算符)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(72)

评论列表共有 0 条评论

立即
投稿
返回
顶部