流程控制

分支语句


一、if分支语句

  • 概述:在某些情况下,需要当某一条件满足时才执行相应代码,条件不满足则执行其他代码。
  • if的四种形式
1、单分支
if (布尔表达式) { 
        //布尔表达式为true时需执行的代码;
}
2、双分支
if (布尔表达式) { 
        //布尔表达式为true时需执行的代码;  
 }else { 
        //布尔表达式为false时需执行的代码; 
}
3、多分支

—— 多个语句块中只执行一个语句块:

if(布尔表达式1){
        //布尔表达式1true时执行的代码
 }else if(布尔表达式2){
        //布尔表达式1false但是布尔表达式2true时执行的代码
}else if(布尔表达式3){
        //布尔表达式1和布尔表达式2false但是布尔表达式3true时执行的代码
}else{
        //布尔表达式1、布尔表达式2和布尔表达式3均为false时执行的代码
}
4、嵌套if

—— 一个分支结构中包含另一个完整分支结构:当有多个条件时分别判断多个条件可以提高程序可读性。

if(布尔表达式1){
       //布尔表达式1true时执行的代码
       if(布尔表达式2){
           //布尔表达式1和布尔表达式2均为true时执行的代码
      }else{
            //布尔表达式1true,但布尔表达式2均为false时执行的代码
      }
 }else {
       //布尔表达式1false时执行的代码
}
注意

1、 if分支语句中去掉括号,则对第一行代码有效。

public class IfTest {
    public static void main(String [] args) {
        int i=3;
        if(i==2)
            System.out.println("代码1");//包含在if语句中
        System.out.println("代码2");
    }
}
//输出结果:代码2

2、 else不能单独使用。

public class IfTest {
    public static void main(String[] args) {
        int i=3;
        if(i==2)
            System.out.println("代码1");
        //System.out.println("代码2");//该行代码去掉程序能编译
        else
            System.out.println("代码3");
    }
}
//输出结果:
//1、去掉上行代码,程序编译,输出——代码3
//2、不去掉时,代码1包含在if语句中,else单独使用,出现错误

二、switch分支语句

switch语法
switch ( 表达式 ) {  
    case 常量1 :[{]
    当表达式的值等于整型常量1时执行的语句; 
    break;//当一种情况包含其他情况时
    [}]
    case 常量2 :[{]
    当表达式的值等于整型常量2时执行的语句; 
    break;
    [}]
       ---
    default:[{]
    当表达式的值不满足任何一个case的值时,执行的语句;
     [}]
}
//注意:上面的大括号可有可无

switch括号中的表达式结果类型可以是
byte、short、int、char以及枚举类型(JDK1.7中也允许是String类型)

break

——用于结束当前switch**语句块中的**程序的执行,不影响外部程序的执行。

public class SwitchTest {
    public static void main(String[] args) {
        int i=1;
        switch(i){
            case 1 :
                System.out.println("代码1");
            case 2 :
                System.out.println("代码2");
            default :
                System.out.println("代码3");
        }
        System.out.println("代码4");
    }
}
//结果:
//代码1
//代码2
//代码3
//代码4


----------




public class BreakTest {
    public static void main(String[] args) {
        int i=1;
        switch(i){
            case 1 :
                System.out.println("代码1");
                break;
            case 2 :
                System.out.println("代码2");
                break;
            default :
                System.out.println("代码3");
        }
        System.out.println("代码4");
    }
}
//结果:
//代码1
//代码4


----------
public class BreakTest {
    public static void main(String[] args) {
        int i = 1;
        int k = 1;
        switch (i) {
            case 1:
                System.out.println("代码1");
                switch (k) {
                    case 1:
                        System.out.println("代码11");
                    break;
                }
                //break;
            case 2:
                System.out.println("代码2");
                break;
            default:
                System.out.println("代码3");
        }
        System.out.println("代码4");
    }
}
//break去掉——代码1,代码11,代码2,代码4
//break加上——代码1,代码11,代码4
return
  • return用于结束当前方法(或者说其所在的方法)的运行。
public class ReturnTest {

    static void show(){
        System.out.println("show方法");
        return;
    }
    public static void main(String[] args) {
        show();
        System.out.println("main方法");
    }
}
//输出:show方法
//main方法
  • return不能用于代码块中
public class ReturnTest {

    static{
        System.out.println("show方法");
        return;//提示错误
    }

    public static void main(String[] args) {
        System.out.println("main方法");
    }
}

循环语句

1、for循环

  • 语法:
for(表达式1;表达式2;表达式3;){
        循环操作;
}


----------


for (  int i = 0 ; i  < 100 ; i++ ) {
         System.out.println("Hello World");
}    

2、while循环

  • 语法
while(布尔型循环条件){
    循环代码块
 }


----------
int i=0; //声明循环参数
//循环20次,每次输出20个*号
while(i < 20){  //循环条件
    System.out.println("**********");
    i++;  //循环参数+1
}
  • 特点:先判断,再执行。

3、do—while循环

  • 语法
do {
    循环操作
} while ( 布尔型循环条件 );
//注意while后的**分号**
  • 特点:先执行,再判断,至少会执行一次。

while和do-while的区别:
1、语法不同
2、执行过程不同:如果循环条件不满足,while循环一次都不会执行;do-while循环不管任何情况都至少执行一次。


4、break、return、continue的比较

1、break

——用于结束当前循环语句块的执行,不影响外部的语句执行。

public class LoopTest {
    public static void main(String[] args) {
        for(int a=0;a<2;a++){
            for(int i=0;i<3;i++){
                if(i==1){
                    break;
                }
                System.out.println("in code 11");
            }
            System.out.println("in code 1");
        }
        System.out.println("out code");
    }
}
//结果:
//in code 11
//in code 1
//in code 11
//in code 1
//out code
2、return

——用于只结束其所在的方法的执行。

public class LoopTest {
    static void loop(){
        for (int i = 0; i < 3; i++) {
            if (i == 1) {
                return;
            }
            System.out.println("in code");
        }
    }
    public static void main(String[] args) {
        loop();
        System.out.println("out code");
    }
}
//结果
//in code
//out code
3、continue

——用于结束当前循环进入下次循环

public class LoopTest {
    public static void main(String[] args) {
        for (int i = 0; i < 4; i++) {
            if (i == 1) {
                continue;
            }
            System.out.println("in code"+i);
        }
        System.out.println("out code");
    }
}
//结果
//in code0
//in code2
//in code3
//out code

4、break、return、continue在if语句中的使用
public class Test {

    public static void main(String[] args) {
        for(int i=0;i<4;i++){
            if(i==1){
                break;
            }
            System.out.println(i);
        }
        System.out.println("out");
        }
    }
}
//结果:
//0
//out
//如果break换为return,输出——0
//如果break换为continue,输出——0,2,3,out
public class Test {

    public static void main(String[] args) {
        if(1==1){
            return;//此处不能使用continue和break
        }
    }
}

总结
1、break可以用在if分支语句中,但必须置于switch或循环语句中。
2、return可以单独在if分支语句中使用
3、continue可以用在if分支语句中,但必须置于循环语句中,不能在switch里面使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值