java基础--操作符

1.操作符

在Java中操作符有以下几类:

  • 算术运算符
  • 关系操作符
  • 逻辑运算符
  • 位操作符
  • 赋值操作符
  • 三元操作符

1.1算术运算符

常见的操作符有:+,-,*,/,%,++,--

1.1.1基本的加 减 乘 除

public class HelloWorld {
    public static void main(String[] args) {
        int i = 10;
        int j = 5;
        int a = i+j;
        int b = i - j;
        int c = i*j;
        int d = i /j;
    }
}

1.1.2从键盘读取数据

需要用到从控制台输入数据,所以需要用到Scanner类,这个类在java.util包中 。

可以使用scanner中的方法:

  • next():读取一行数据
  • nextLine():读取一行数据
  • nextInt():读取一个整型数据
  • 同理还可以是其他类型如nextFloat()等等

例子:从键盘输入两个数,并输出他们的和

import java.util.*;

public class addNum {
    public static void main(String[] args) {
        System.out.print("first num:");
        int num1=new Scanner(System.in).nextInt();
        System.out.print("second num:");
        int num2=new Scanner(System.in).nextInt();
        System.out.println("the sum is:"+(num1+num2));
    }
}

1.1.3取模%与取整/

int i=13%2;//i=1
int j=13/2;//j=6

1.1.4自增与自减(++,--)

在原来的基础上增加1或者减少1

public class HelloWorld {
    public static void main(String[] args) {
 
        int i = 5;
        i++;
        System.out.println(i);//输出为6
 
    }
}

但自增与自减有前置和后置的区别:

前置++:先+1,后取值

后置++:先取值,后+1

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
    }
}

1.1.6小程序BMI

BMI的计算公式是 体重(kg) / (身高*身高)

import java.util.Scanner;

public class BMI {
    public static void main(String[] args) {
        System.out.print("请输入你的体重:");
        float weight=new Scanner(System.in).nextFloat();
        System.out.print("请输入你的身高:");
        float height=new Scanner(System.in).nextFloat();
        System.out.println("你的BMI为:"+weight/(height*height));
    }
}

1.2关系操作符

常见的关系操作符有:>, >= ,< , <= ,,== ,!= 

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
        
}
}

1.3逻辑运算符

常见的逻辑运算符有:&,|,!,&&,||,^

1.3.1与,或,非

与:只有都为真时才为真

或:只要有一个为真则为真

非:取反

public class HelloWorld {
    public static void main(String[] args) {
        //长路与  无论第一个表达式的值是true或者false,第二个的值,都会被运算
        int i = 2;
        System.out.println( i== 1 & i++ ==2  ); //无论如何i++都会被执行,所以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);     
         
    }
}

1.3.2&&,||

&&:只要第一个表达式为假,则后面的不用计算,直接为假

||:只要第一个表达式为真,则为真,后面的不用计算

public class HelloWorld {
    public static void main(String[] args) {
        //长路或  无论第一个表达式的值是true或者false,第二个的值,都会被运算
        int i = 2;
        System.out.println( i== 1 | i++ ==2  ); //无论如何i++都会被执行,所以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);     
         
    }
}

1.3.3异或^

不同为真,相同为假。

public class HelloWorld {
    public static void main(String[] args) {
        boolean a = true;
        boolean b = false;
         
        System.out.println(a^b); //不同返回真
        System.out.println(a^!b); //相同返回假
 
    }
}

1.4位操作符

常见的位操作符有:&,|,!,^,<<,>>

1.4.1位或|

0|0=0,其他都为1

public class wiehuo {
    public static void main(String[] args) {
        int i=2,j=3;
        System.out.println(Integer.toBinaryString(i));//10
        System.out.println(Integer.toBinaryString(j));//11
        System.out.println(i|j);//3
        System.out.println(Integer.toBinaryString(i|j));//11
        
    }
}

Integer.toBinaryString():可以将一个数转化为2进制

1.4.2位与&

1&1=1,其他为0

public class weiyu {
    public static void main(String[] args) {
        int i=5,j=6;
        System.out.println(Integer.toBinaryString(i));//101
        System.out.println(Integer.toBinaryString(j));//110
        System.out.println(Integer.toBinaryString(i&j));//100
        System.out.println(i&j);//4
        
    }
}

1.4.3异或^

相同为0,相异为1.

public class yihuo {
    public static void main(String[] args) {
        int i=5,j=6;
        System.out.println(Integer.toBinaryString(i));//101
        System.out.println(Integer.toBinaryString(j));//110
        System.out.println(Integer.toBinaryString(i^j));//011
        System.out.println(i^j);//3
        
    }
}

1.4.4左移,右移

左移:根据一个整数的二进制表达,将其每一位都向左移动,最右边一位补0
右移:根据一个整数的二进制表达,将其每一位都向右移动

public class weiyi {
    public static void main(String[] args) {
        int i=5;
        System.out.println(Integer.toBinaryString(i));//101
        System.out.println(Integer.toBinaryString(i<<1));//左移一位1010
        System.out.println(Integer.toBinaryString(i>>1));//右移一位10
        
    }
}

1.5赋值操作符

1.6三元操作符

猜你喜欢

转载自www.cnblogs.com/knight11/p/9334825.html