JAVA-2.1-逻辑运算符、关系运算符、if语句及switch语句

来源:互联网 发布:南极属于哪个国家 知乎 编辑:程序博客网 时间:2024/05/29 12:26

写出下面程序的运行结果
1、

int x = 1,y = 1;//定义变量x,y,并对其分别进行初始值化if(x++==2 & ++y==2)/** x++先取值操作,再自增    ++y先自增,后取值操作    ①x值为1    ②判断x==2是否成立,false    ③x值自增1,即x值为2    ④运行到到&,继续执行++y==2    ⑤y自增1,即y值为2    ⑥判断y==2是否成立,true    ⑦if(比较表达式)中比较表达式结果(false & true),结果为false,则不执行循环体*/{    x =7;}//不执行循环体System.out.println("x="+x+",y="+y);//x=2,y=2

2、

int x = 1,y = 1;//定义变量x,y,并对其分别进行初始值化if(x++==2 && ++y==2)/** ①x值为1    ②判断x==2是否成立,false    ③x值自增1,即x值为2    ④运行到到&&,发现只要x++==2为false就不再执行++y==2(即短路效果),直接得出if(比较表达式)中比较表达式结果为false,则不执行循环体*/{    x =7;}//不执行循环体System.out.println("x="+x+",y="+y); //x=2,y=1

3、

int x = 1,y = 1;//定义变量x,y,并对其分别进行初始值化if(x++==1 | ++y==1)/**  x++先取值操作,再自增     ++y先自增,后取值操作     ①x值为1     ②判断x==1是否成立,true     ③x值自增1,即x值为2     ④运行到到|,继续执行++y==1     ⑤y自增1,即y值为2     ⑥判断y==1是否成立,false     ⑦if(比较表达式)中比较表达式结果(true | false),结果为true,则继续执行循环体*/{    x =7;//把7赋值给x}System.out.println("x="+x+",y="+y);//x=7,y=2

4、

int x = 1,y = 1;//定义变量x,y,并对其分别进行初始值化if(x++==1 || ++y==1)/** ①x值为1    ②判断x==1是否成立,true    ③x值自增1,即x值为2    ④运行到到||,发现只要x++==2为true就不再执行++y==2(即短路效果),直接得出if(比较表达式)中比较表达式结果为true,则继续执行循环体*/{    x =7;//把7赋值给x}System.out.println("x="+x+",y="+y);//x=7,y=1

总结1  关系运算符:
  ==,!=,>,>=,<,<=
  注意:
    A:比较运算符的结果肯定是boolean。
    B:你到底是使用”=”还是使用”==”,你自己要清楚。

总结2 逻辑运算符:
  &,|,!,^
  &&,||
  注意:
    逻辑运算符用于连接关系表达式
  结论:
    &: 有false则false
    |: 有true则true
    !:改变结果,取反
    ^:相同false,不同true
      记忆:情侣关系(男男,男女,女男,女女)

  最常用的逻辑运算符  !,&&,||
    &&和&:结果一样,但是&&具有短路效果,左边如果是false,右边不执行。
    ||和|:结果一样,但是||具有短路效果,左边如果是true,右边不执行。

5、

boolean b = true;//定义布尔型变量b,并初始化为trueif(b=false)//把false赋值给b,比较表达式结果为false,不执行循环体    {        System.out.println("a");    }else if(b)//比较表达式结果为false,不执行循环体    {        System.out.println("b");    }else if(!b)//b为false,!b为true,比较表达式结果为true,执行循环体    {    System.out.println("c");//输出c    }else//不再执行    System.out.println("d");//不再执行

总结3 if语句

if语句格式1:
  if(比较表达式) {
     语句体
   }
  执行流程:
    首先判断比较表达式看其结果是true还是false
    如果是true就执行语句体
    如果是false就不执行语句体
    
if语句格式2:
  if(比较表达式) {
    语句体1;
  }else {
    语句体2;
  }
  执行流程:
    首先判断关系表达式看其结果是true还是false
    如果是true就执行语句体1
    如果是false就执行语句体2
    
if语句格式3:
  if(比较表达式1) {
    语句体1;
  }else if (比较表达式2) {
      语句体2;
  }
  …
  else {
       语句体n+1;
  }
  执行流程:
    首先判断关系表达式1看其结果是true还是false
    如果是true就执行语句体1
    如果是false就继续判断关系表达式2看其结果是true还是false
    如果是true就执行语句体2
    如果是false就继续判断关系表达式…看其结果是true还是false
    …
    如果没有任何关系表达式为true,就执行语句体n+1。

if语句的三种格式:
  格式1:适合做一种情况的判断
  格式2:适合做二种情况的判断
  格式3:适合做多种情况的判断

if语句的注意事项:
  A:比较表达式无论简单还是复杂,结果必须是boolean类型
  B:一般来说:有左大括号就没有分号,有分号就没有左大括号
  
6、

int x = 2,y=3;//定义变量x,y,并对其分别进行初始值化switch(x){    default:        y++;    case 3:        y++;        break;    case 4:        y++;}/** ①x的值为2,寻找case中的对应值    ②发现并没有case 2,那么执行default语句y++,此时y的值变作4    ③default语句的最后没有break,则继续往下执行    ④进行到case 3执行y++,此时y的值变作5,遇到break,switch语句结束*/System.out.println("y="+y);//y=5

总结4 switch语句:
switch语句的格式:
  switch(表达式) {
    case 值1:
         语句体1;
         break;
    case 值2:
         语句体2;
         break;
    …
    default:
         语句体n+1;
         break;
  }
  
格式解释:
  A:switch表示这是switch语句
  B:表达式
    表达式的取值:byte,short,int,char
    JDK5以后可以是枚举
    JDK7以后可以是String
  C:case后面跟的是要和表达式进行比较的值
  D:语句体部分可以是一条或多条语句
  E:break表示中断,结束的意思,可以结束switch语句
  F:default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
  
执行流程:
  首先计算出表达式的值。
  其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
  最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。

switch语句的注意事项:
  A:case后面只能是常量,不能是变量。
  B:多个case后面的值不能出现相同的。
  C:default可以省略吗?
    可以。但是不建议。
  D:break可以省略吗?
    可以。但是不建议。容易出现case穿透。
  E:default的位置一定要在最后吗?
    可以在任意位置,建议在最后。
  F:switch语句的结束条件
    a:遇到break
    b:执行到末尾

0 0
原创粉丝点击