java学习第03天(运算符、语句)

时间:2022-09-08 15:46:05

5.运算符

(1)算数运算符

//算数运算符:+ - * / %(取余)
//++ --(自增,就是在原有数据基础上+1,再赋给原有数据)
///int x = 6370;
//x = x/1000*1000;
//int a = 4, b = 5;
//int a = 3,b;
//b = a++;
//System.out.println("a="+a+",b="+b);
//int i = 3;
//i = i++;
//System.out.println(i);

 

(2)赋值运算符

//赋值运算符: = += -+ *= /+
//int a,b,c;
//a = b = c = 3;
short a = 4;
//a+=2;//编译成功,自动进行了类型的提升。赋值过程中做了强制转换动作。是赋值运算具有的特点。
a = a+2;//编译失败,+的值不确定,可能会丢失精度。
System.out.println(a);

 

(3)比较运算符

class OperateDemo
{
  public static void main(String[] args)
  {
     /*
        输出true,比较运算符,运算出肯定室友结果,比较运算符运算出的结果要么是true,要么是false
     */
     System.out.println(3>2);
  }
}

 

比较运算符

运算符

运算

范例

结果

==

相等于

4==3

false

!=

不等于

4!=3

true

小于

4<3

false

大于

4>3

true

<=

小于等于

4<=3

false

>=

大于等于

4>=3

false

instanceof

检查是否是类的对象

“Hello”  instanceof String

true

注1:比较运算符的结果都是boolean型,也就是要么true,要么false。

注2:比较运算符“==”,不能误写成“=”

 

(4)逻辑运算符

逻辑运算符有什么作用?

用于连接两个boolean类型的表达式

运算符

运算

范例

结果

&

and(与)

false&true

false

|

  • or(或)

false|true

true

^

xor(异或)

false^true

true

!

not(非)

!true

false

&&

and(短路)

false&&true

false

||

  • or(短路)

false||true

true

class OperateDemo
{
   public static void main(String[] args)
   {
      /*
        输出true,比较运算符,运算出肯定室友结果,比较运算符运算出的结果要么是true,要么是false
      逻辑运算符有什么作用?
      用于连接两个boolean类型的表达式
      |  运算特点:
        |运算两边只要有一个是true,结果肯定是true。
        只要两边都是false,结果是false。
        true^true = true;
        true^false = true;
        false^true = true;
        false^false = false;
      ^  异或:和或有点不一样。
        ^运算特点:
        ^符号两边如果相同,结果是false。
        两边的结果不同,结果是true。
        true^true = false;
        true^false = true;
        false^true = true;
        false^false = false;
      && 下面对比&与&&的相同点和不同点
        &&:和&运算的结果是一样的,但是运算过程有点小区别
        &:无论左边的运算结果是什么,右边都参与运算。
        &&:当左边为假时,右边是不参与运算的。
        int x = 3;
        &&与与
        x>2 & x<5  true
        x>2 && x<5  true
        int x = 6;
        &&与与
        x>2 & x<5  false
        x>2 && x<5  false
        int x = 1;
        &&与与
        x>2 & x<5  false
        x>2 && x<5  false//只有左边为假,右边就直接不运算了,相当于物理中的电流不通,断路了,当然返回结果还是false。
      ||:
        和|运算的结果是一样的,但是运算过程有点小区别。
        |:无论左边的运算结果是什么,右边都参与运算。
        ||:当左边为假时,右边是不参与运算的。
      */
      System.out.println(3==2);
   }
}

 

(5)位运算符

位运算符

运算符

运算

范例

<< 

左移

3<<2=12-->3*2*2=12

>> 

右移

3>>1=1-->3/2=1

>>> 

无符号右移

3>>>1=1-->3/2=1

&

与运算

6&3=2

|

或运算

6|3=7

^

异或运算

6^3=5(一个数异或同一个数2次,结果还是这个数)

~

反码

~6=-7

 

位运算符细节

<< 

空位补0,被移除的高二进制位丢弃,空位补0.

>> 

被移位的二进制最高位是0,右移后,空位补0;最高位是1,空位补1.

>>> 

被移位的最高位无论是0或者是1,空位都补0.

&

二进制位进行&运算,只有1&1时结果是1,否则是0.

|

二进制进行|运算,只有0|0时结果是0,否则是1.

^

相同二进制进行^运算,结果是0;1^1=0,0^0=0;

不同二进制进行^运算结果是1.

~

 

 

(6)三元运算符

格式:条件表达式?表达式1:表达式2

      如果条件为true,运算后的结果是表达式1

      如果条件为false,运算后的结果是表达式2

示例:

   获取两个数中的数值大的数

 

  int x = 3,y=4;
   z=(x>y)?x:y;//z变量存储的就是两个数的大数。

 

6.语句

(1)判断结构

   if语句三种格式

a.if(条件表达式){

   执行语句

}

b. if(条件表达式){

   执行语句

}else{

   执行语句

}

c. if(条件表达式){

   执行语句

} else if(条件表达式){

   执行语句

} else{

   执行语句

}

 

If:

a. 对具体的值进行判断

b. 对区间进行判断

c. 对运算结果是boolean类型的表达式进行判断

(2)选择结构

switch(需要判断的值)

      {

        case "值1":

           执行语句1;

           break;

        case "值2":

           执行语句2;

           break;

        case "值3":

           执行语句3;

           break;

        default:

           默认执行语句;

           break;

      }

Switch:

a. 对具体的值进行判断

b. 值的个数通常是固定的

对于几个固定值的判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存,效率相对高一点。

(3)循环结构

while(条件表达式)

      {

        执行语句;

      }

int x = 1;
while(x<3)
{
     System.out.println("x="+x);
     x++;
}