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

写出下面程序的运行结果
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,并初始化为true
if(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:执行到末尾

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值