Java语言学习day 03 - 选择语句和循环语句

1.选择语句

1.1 顺序结构

定义:代码中不存在流程控制 , 程序按照顺序一行一行的向下执行 , 直到代码全部运行完成.

在这里插入图片描述

1.2 if语句

  • if意思 : 如果 … 那么 …

  • 语法格式 : if ( boolean 表达式)

    ​ {

    ​ 语句体;

    ​ }

    流程 : 如果boolean 表达式为 true , 才执行 { } 里的语句体.

​ 注意: if ( boolean 表达式) 后面不要分号( ; ) .

//需求:演示if语句的使用
public class IfDemo1 {
    /*
     步骤:
    (1)定义一个整数类型的变量a
    (2)判断a大于5,大于打印“a大于5”
    (3)判断a大于20,大于打印“a大于20”
    */
    public static void main(String[] args){
        //定义一个整数类型的变量a
        int a = 15;
        //判断a大于5,大于打印“a大于5”
        if(a > 5){
            System.out.println("a大于5");
        }
        //判断a大于20,大于打印“a大于20”
        if(a > 20){
            System.out.println("a大于20");
        }
    }
}

1.3 if - else语句

  • if - else 意思 : 如果 … 那么 … 否则…

  • 语法格式 : if ( boolean 表达式)

    ​ {

    ​ 语句体1;

    ​ }

    ​ else

    ​ {

    ​ 语句体2;

    ​ }

    流程 : 如果boolean 表达式为 true , 才执行 { } 里的语句体1. 否则执行{ } 里的语句体2.

//需求:演示if-else语句的使用
public class IfElseDemo {
    /*
    步骤:
    (1)定义一个整数类型的变量a
    (2)判断a是奇数还是偶数,如果是偶数打印“a是偶数”,否则打印“a是奇数”
     */
    public static void main(String[] args){
        //定义一个整数类型的变量a
        int a = 20;
        //判断a是奇数还是偶数,如果是偶数打印“a是偶数”,否则打印“a是奇数”
        if(a % 2 == 0){
            System.out.println("a是偶数");
        }else{
            System.out.println("a是奇数");
        }
    }
}

1.4 if - else if - else 语句

  • if - else if - else 意思 : 如果 … 那么 … 如果 … 那么 … 否则…

  • 语法格式 : if ( boolean 表达式1)

    ​ {

    ​ 语句体1;

    ​ }

    ​ else if (boolean 表达式2)

    ​ {

    ​ 语句体2;

    ​ }

    ​ //可以有多个 else if

    ​ else

    ​ {

    ​ 前面的条件都是false , 执行该语句体

    ​ }

    流程 : 哪个boolean 表达式为 true , 才执行 { } 里的语句体. 如果前面的boolean表达式都是false , 执行else里语句体.

    注意: 最后一个else可以不写. 只能存在一个else{ } .

//需求:根据输入的一个数字,判断是星期几?
public class IfElseIfElseDemo2 {
    /*
    步骤:
     (1)定义一个整数类型的变量weekday
     (2)判断变量weekday,如果weekday为1输出“周一”,如此类推
     */
    public static void main(String[] args) {
        //定义一个整数类型的变量weekday
        int weekday = 5;
        //判断变量weekday,如果weekday为1输出“周一”,如此类推
        if (weekday == 1) {
            System.out.println("周一");
        } else if (weekday == 2) {
            System.out.println("周二");
        } else if (weekday == 3) {
            System.out.println("周三");
        } else if (weekday == 4) {
            System.out.println("周四");
        } else if (weekday == 5) {
            System.out.println("周五");
        } else if (weekday == 6) {
            System.out.println("周六");
        } else if (weekday == 7) {
            System.out.println("周日");
        } else {
            System.out.println("输入错误");
        }
    }
}

1.5 switch语句

  • switch使用条件: 对于判断条件是否等于某一个数值 , 我们可以使用switch. 所有的选择语句都可以用if - else 语句, swithch只能用在等值判断下.

  • 语法格式 : switch( 整型表达式 ) {

    ​ case A值: 语句体1; break;

    ​ case B值: 语句体2; break;

    ​ case C值: 语句体3; break;

    ​ …多个case语句

    ​ default:

    ​ 以上case值都不满足时 , 执行该语句;

    ​ break;//最后的break可以省略

    }

  • 支持类型 : 1. 整型表达式的类型:byte,short,char,int.

​ 2. Java5开始支持枚举.

​ 3. Java7开始支持String.

  • 注意点: case后面的值必须时常量.

  • switch的穿透性质 : switch进入的第一个case判断成功进入的代码块如果没有break或者return的话,后面所有的case都不会判断,默认为true直接执行里面的代码块。

//需求:使用switch来完成,根据输入的一个数字,判断是星期几?
public class SwitchDemo {
    /*
    步骤:
    (1)定义一个整数类型的变量weekday
    (2)判断变量weekday,如果weekday为1输出“周一”,如此类推
     */
    public static void main(String[] args) {
        //定义一个整数类型的变量weekday
        int weekday = 9;
        //判断变量weekday,如果weekday为1输出“周一”,如此类推
        switch (weekday) {
            case 1:
                System.out.println("周一");
                break;
            case 2:
                System.out.println("周二");
                break;
            case 3:
                System.out.println("周三");
                break;
            case 4:
                System.out.println("周四");
                break;
            case 5:
                System.out.println("周五");
                break;
            case 6:
                System.out.println("周六");
                break;
            case 7:
                System.out.println("周天");
                break;
            default:
                System.out.println("日期错误");
                break;
        }
    }
}

​ 和if - else if -else if -else 效果一样

2.循环语句

2.1 while

  • 语法格式: while( boolean 表达式){

    ​ 循环体

    ​ }

  • 流程: 如果boolean 表达式一直为true, 就一直执行循环, 直到boolean表达式为false循环结束.

//需求:打印从1到100的数
public class WhileDemo2 {
    /*
    步骤:
    (1)定义一个变量number
    (2)循环打印number
     */
    public static void main(String[] args){
        //定义一个变量number
        int number = 1;
        //循环打印number
        while(number <= 100){
            System.out.println("number=" + number);
            number++;
        }
    }
}

2.2 do - while

  • 语法格式: do{

    ​ 循环体

    ​ }

    ​ while( boolean 表达式);

  • 流程: 先执行一次循环体,再进行boolean表达式的判断.如果为true就继续进行循环.如果为false就跳过循环.

  • 特点:就算boolean表达式为false,也会至少执行一次循环体.

    //需求:演示while和do-while的区别
    public class DoWhileDemo1 {
        /*
        步骤:
        (1)定义两个整数变量a和b
        (2)分别使用while和dowhile判断a > b
         注意:出来结果while没有打印任何内容,do-while打印了一次“a > b”,才算作业完成。
         */
        public static void main(String[] args) {
            //定义两个整数变量a和b
            int a = 10;
            int b = 20;
            //while没有打印任何内容
            while (a > b) {
                System.out.println("a > b");
            }
            System.out.println("------------------");
            //do-while打印了一次“a > b”
            do {
                System.out.println("a > b");
            } while (a > b);
        }
    }
    

2.3 for

  • 语法格式:

    for(定义一个变量并赋值; boolean 表达式 ;循环后的操作)

    {

    ​ 循环体

    }

    一般情况下循环后的操作是变量的递增或者递减

  • 流程: 先定义一个变量并赋值,再进行boolean表达式的判断: 如果为true就执行循环体, 再进行循环后的操作, 最后回到boolean表达式, 重复上述操作. 如果为false, 则跳过循环体, 循环结束.

//需求:演示for语句的使用
public class ForDemo {
    /*
    步骤:
   (1)使用for循环打印1到10
   (2)使用for循环计算100以内正整数之和
     */
    public static void main(String[] args) {
        //使用for循环打印1到10
        for (int i = 1; i <= 10; i++) {
            System.out.println("i=" + i);
        }
    }
}

2.4 控制循环

2.4.1 break和return
  • break:表示结束当前所在的循环.
  • return:表示结果循环所在的方法.
//需求:从1输出到10,当迭代变量为7,就终止程序
public class BreakDemo {
    /*
    步骤:
   (1)循环打印1到10
   (2)判断循环次数是否为7,是就停止循环,否则打印循环次数
     */
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            if (i == 7)
            break;//结束当前整个循环,继续执行for外面的代码
            System.out.println("i=" + i);
        }
        System.out.println("停止");//输出
    }
}
//需求:从1输出到10,当迭代变量为7,就终止程序
public class ReturnDemo {
    /*
    步骤:
   (1)循环打印1到10
   (2)判断循环次数是否为7,是就停止循环,否则打印循环次数
     */
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            if (i == 7)
                return;//结束循环所在的方法
            System.out.println("i=" + i);
        }
        System.out.println("停止");//不输出
    }
}
2.4.2 continue
  • continue: 跳过当前的循环, 执行循环之后的操作语句 , 进入下一次的循环.
//需求:从1输出到10,不要输出4
public class ContinueDemo {
    /*
    步骤:
    (1)循环遍历1到10的数
    (2)判断如果i为4,跳过当前循环,否则打印i
     */
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            //当i=4的时候跳过本次循环,进行后续的循环操作
            if (i == 4)
                continue;
            System.out.println("i=" + i);
        }
    }
}

2.5嵌套循环

循环解决的是: 某一个操作需要重复执行, 如果一个重复的操作需要做N次, 此时得使用嵌套循环.

//需求:打印九九乘法表
public class Table99Demo {
    /*
    思路:
    通过普通方式找到规律,写出最终通用版本
     */
    public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {//外层循环
            //用得到的i进行循环
            for (int j = 1; j <= i; j++) {//内层循环
                //打印乘法表
                System.out.print(j + "*" + i + "=" + i * j);
                //每一行中的算式之间的间隔
                System.out.print("   ");
            }
            //换行
            System.out.println("");
        }
    }
}

3.总结

3.1 Java代码的执行顺序

当代码里面没有流程控制的情况下, 代码按自己书写的顺序一行一行从上往下执行每一条语句, 直到代码都运行完毕.

3.2 什么时候需要使用选择结构

当代码存在多个不同的结果的时候, 就会产生不同的选择, 这个时候就需要使用选择结构

3.3 if - else if - else if - else的语法和执行流程

if - else 语法 : if( boolean表达式){

​ 语句体1

​ }

​ else{

​ 语句体2

​ }

if - else 执行流程 : 如果boolean 表达式为 true , 才执行 { } 里的语句体1. 否则执行{ } 里的语句体2.

if - else if - else

语法 : if( boolean表达式1){

​ 语句体1

​ }

​ else if( boolean表达式2){

​ 语句体2

​ }

​ …可以有多个else if

​ else {

​ 前面都不满足,执行这个语句体

​ }

执行流程 : 哪个boolean 表达式为 true , 才执行 { } 里的语句体. 如果 前面的boolean表达式都是false , 执行else里语句体.

3.4 什么时候需要使用循环结构

当某一个操作需要重复执行的时候, 需要使用循环结构.

3.5 while的语法和执行流程

while 语法: while( boolean表达式){

​ 循环体

​ }

while 执行流程: 如果boolean 表达式一直为true, 就一直执行循环, 直到boolean表达式为false循环结束.

3.6 do-while的语法和执行流程

do - while 语法: do{

​ 循环体

​ }while( boolean表达式)

do - while 执行流程: 先执行一次循环体,再进行boolean表达式的判断.如果为true就继续进行循环.如果为false就跳过循环.

3.7 for的语法和执行流程

for 语法:

for(定义一个变量并初始化; boolean表达式; 循环后的操作){

​ 循环体

}

for 执行流程: 先定义一个变量并赋值,再进行boolean表达式的判断: 如果为true就执行循环体, 再进行循环后的操作, 最后回到boolean表达式, 重复上述操作. 如果为false, 则跳过循环体, 循环结束.

3.8 嵌套循环的执行流程

嵌套循环执行流程: 外循环执行一次,内循环执行完整

for(1;2;3){//外层循环

​ for(4;5;6){//内层循环

​ 7

​ }

}

1和4 :定义变量并赋值 2和5 : boolean表达式 3和6 .循环后的操作(一般是自增或者自减) 7:循环体

执行过程:1 2 4 5 7 6 5 7 6 5 7 6 5(直到5为false,内层结束,继续外层), 3 2 4 5 7 6(直到外层循环为false时结束整个循环)

3.9 break,return,continue各自的作用

break: 结束当前整个循环,继续执行for外面的代码

return: 结束循环所在的方法

continue: 跳过当前的循环, 执行循环之后的操作语句 , 进入下一次的循环.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值