Java学习笔记02 -- 顺序控制

本文详细介绍了Java中的分支控制结构(if、else、elseif、switch、嵌套分支)以及各种循环控制(for、while、dowhile、break、continue和return),帮助读者掌握编程中的条件判断和循环逻辑。
摘要由CSDN通过智能技术生成

分支控制

单分支

基本语法:

if(条件表达式){

​ 执行代码块; (可以有多条语句)

}

说明:判断结果为真执行代码块,否则跳过

//例子
    int a = 10;
    int b = 20;
    if(a < b) {
        System.out.println("我比你大");
    }
双分支

基本语法:

if(条件表达式){
执行代码块1;
}else{
执行代码块2;
}
说明:判断结果为真,执行代码块1,否则执行代码块2

//例子:
    int age = 20;
    if(age>18){
        System.out.println("你的年龄大于18");
    }else {
        System.out.println("你的年龄小于18");
    }
多分支

基本语法:
if(条件表达式){
执行代码块1;
}else if(条件表达式2){
执行代码块2;
}

else{
执行代码块n;
}

/*案例:判断一个人的成绩是否优秀
 * 1.成绩为=100时,满分
 * 2.成绩为>80时,成绩优秀
 * 3.成绩为>60时,成绩一般
 * 4.其他情况,输出不合格
 */
    Scanner myscanner = new Scanner(System.in);
    System.out.println("请输入名字");
    String name = myscanner.next();
    System.out.println("请输入成绩");
    double achievement = myscanner.nextDouble();
    if(achievement==100) {
        System.out.println("满分");
    }if (achievement>=80 && achievement<=99) {
        System.out.println("成绩优秀");
    }if (achievement>=60 && achievement<=79) {
        System.out.println("成绩一般");
    }if (achievement<60) {
        System.out.println("不合格");
    }

说明:

  1. 当条件表达式1成立时,执行代码块1

  2. 如果不成立,才去判断表达式2是否成立

  3. 如果表达式2成立,就执行代码块2

  4. 以此类推,如果所有表达式都不成立

  5. 则执行else的代码块,注意只有一个执行入口

  6. 特别说明

    • 多分支可以没有else,如果所有的条件表达式都不成立,则执行入口都没有

    • 如果有else,如果所有的条件表达式都不成立,则默认执行else代码块

嵌套分支

基本语法:

​ if(){

​ if(){

​ if-else

​ }else{

​ if-else

​ }

}

说明:在一个分支结构中又完整的嵌套了另一个完整的分支结构
里面的分支结构称为内层分支,外面的称为外层分支
建议:不要超过3层,可读性不好

/*例子:参见歌手大赛,如果成绩大于8.0进入决赛,否则淘汰,并且根据性别提示进入男子组
 * 	  或女子组,输入成绩和性别,进行判断和输出
 */
    Scanner myscanner  = new Scanner(System.in);
    System.out.println("请输入你的成绩");
    double achievement = myscanner.nextDouble();
    if(achievement>=8.0) {
        System.out.println("请输入你的性别");
        char gender = myscanner.next().charAt(0);
        //先接收到字符串,再取出字符串里面的第一个字符,这个称之为接收字符的方法
        if(gender == '男') {
            System.out.println("进入男子组");
        }else if(gender == '女'){
            System.out.println("进入女子组");
        }else{
            System.out.println("性别有误,请重新输入");
        }
    }else {
        System.out.println("淘汰");
    }
switch 分支结构

基本语法:

switch(表达式){

​ case常量1:

​ 语句块1;

​ break;

​ case常量2:

​ 语句块2;

​ break;

​ case常量n:

​ 语句块n;

​ break;

​ default;

​ default语句块;

​ break;

}

//例子
    Scanner myscanner = new Scanner(System.in);
    System.out.println("请输入一个字符a-g");
    char c1 = myscanner.next().charAt(0);
    //在java中只要是有返回值,就是一个表达式
    switch(c1) {
    case 'a' :
        System.out.println("今天是星期一");
    break;
    case 'b' :
        System.out.println("今天是星期二");
    break;
    case 'c' :
        System.out.println("今天是星期三");
    break;
    case 'd' :
        System.out.println("今天是星期四");
    break;
    case 'e' :
        System.out.println("今天是星期五");
    break;
    case 'f' :
        System.out.println("今天是星期六");
    break;
    case 'g' :
        System.out.println("今天是星期日");
    break;

    default:
        System.out.println("你输入的字符不正确,一个都没有匹配上");
    }

说明:

  1. switch关键字,表示switch分支
  2. 表达式对应一个值
  3. case常量1:当表达式的值等于常量1,就执行语句块1
  4. break:表示退出switch
  5. 如果case和常量1匹配,就执行语句块1,如果没有匹配,就继续匹配case常量2
  6. 如果一个都没有匹配上,执行default

Switch细节

  1. 表达式数据类型,应和case后的常量类型一致,或者可以自动转换成可以相互比较的类型,比如输入的是字符,而常量是int
  2. switch(表达式)中的表达式的返回值必须是:(byte,short,int,char,enum{枚举}.String)
  3. case子句中的值必须是常量,而不能是变量
  4. default子句是可选的,当没有匹配的case时,执行default
  5. break语句用来在执行完一个case分支后使程序跳出switch语句块:如果没有写break,程序会顺序执行到switch结尾,除非遇到 break

循环控制

for循环控制

基本语法:
for(循环变量初始化;循环条件;循环变量迭代){
循环操作(语句);
}

//例子
    for(int a = 0;a<=10;a++) {
        System.out.println("第"+a+"次循环");
    }

说明

  1. for关键字,表示循环控制
  2. for有四要素: (1)循环变量初始化 (2)循环条件 (3)循环操作 (4)循环变量迭代
  3. 循环操作,这里可以有多条语句
  4. 如果for循环操作只有一条语句,可以省略{},建议不要省略
for循环的细节
  1. 循环条件是返回一个布尔值的表达式
  2. for (;循环判断条件;) 中的初始化和变量迭代可以写到其他地方,但是两边的分号不能省略
  3. 循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,
  4. 循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开
//2.
    int a = 0;//循环变量初始化
    for(;a<=5;) {
        System.out.println("阴阳师");
        a++;
    }
    /*说明:如果a变量在for循环里面的话,它就只作用for循环里面,其他地方不使用
     * 	如果a变量在外面的话,它可以在for循环里面使用,也可由在其他地方使用
     */
//3.
    int count = 3;
    for(int i = 0,j = 0;i<count;i++,j+=2) {
        System.out.print("i="+i+"j="+j+"\n");
    }

无限死循环演示

for(;;) {
        System.out.println("阴阳师");
    }
while循环控制

基本语法:

循环变量初始化;

​ while(循环条件){

​ 循环体(语句);

​ 循环变量迭代;

​ }

//例子
    int a = 1;//循环变量初始化
    while(a<=10) {//循环条件
        System.out.println(a+"次阴阳师");//循环体
        a++;//循环变量迭代
    }
    System.out.println("a="+a);

说明:

  1. while循环也要有四要素
  2. 只是四要素的位置和for不一样

细节:

  1. 循环条件是返回一个布尔值的表达式
  2. while循环是先判断在执行语句
do while循环

基本语法:
循环变量初始化;
do{
循环体();
循环变量迭代;
}while(循环条件);

//例子
    int a = 1;
    do {
        System.out.println("崩坏三"+a+"次");
        a++;
    }while(a<=10);

说明:

  1. do while是关键字
  2. 也有循环四要素,只是位置不一样
  3. 先执行,在判断,也就是说,一定会执行一次
  4. 最后一个有分号
  5. (do…while) 和 (while) 的区别在与一个先执行再判断,一个先判断再执行

细节:

  1. 循环条件是返回布尔值的表达式

  2. do…while 循环是先执行,在判断,因此它至少执行一次

跳转控制语句

break

基本介绍:用于终止某个语句块,一般使用在switch或者循环[for,while,do-while]中

基本语法:

​ {…

​ break;

​ …

​ }

细节:

  1. break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
//例子
    for(int i = 0;i<=10;i++) {
        if(i==3) {
            break;
            }//i=3的时候终止循环
        System.out.println("ok"+i);
        //原本是循环10次但是,中途被break截止了,所以只循环了3次
    }
    //标签的基本使用
    lable1:
        for(int a = 0;a<=5;a++) {//外层for
    lable2:
    for(int j = 0;j<=10;j++) {//内层for
        if(j==2) {
            break lable1;
        }
        System.out.println("j="+j);
    }
        }

说明:

  1. brake语句可以指定退出那一层
  2. lable1是标签,由程序员指定
  3. break后指定到那一个lable就退出哪里
  4. 实际开发中尽量不要使用标签
  5. 如果没有指定break,就默认退出最近的循环体
continue

基本介绍

  1. continue语句用于结束本次循环,继续执行下一循环
  2. continue语句出现多层嵌套的循环语句中时,可以通过标签指明跳到那一层循环这个和break标签的使用规则一样

基本语法:

{…

continue;

}

//例子
    int i = 0;
    while(i<=4){
        i++;
        if(i==2) {
            continue;
        }
        System.out.println("i="+i);
        //i=2时continue语句用于结束本次循环下面的输出不执行,开始第三次循环
    }
		
    System.out.println("====================================="); 

    //细节:
    label1:
    for(int a = 0;a<4;a++) {
        label2:
        for(int b = 0;b<10;b++) {
            if(b==2) {
                //continue; 等价于label2:
                continue label1;
            }
            System.out.println("b="+b);
        }
    }
return

基本介绍:return使用在方法上,表示跳出所在的方法( 注意:如果return写在main方法里面,即退出程序)

//例子
    for(int i = 1;i<=5;i++) {
        if(i==3) {
            System.out.println("阴阳师"+i);
            //return;
            //continue;
            break;
        }
        System.out.println("Hello,world");
    }
    System.out.println("go...hou...mu");

解析

  1. 如果用return,再i=3的时候输出两次"Hello,world"和一次阴阳师并退出整个程序
  2. 如果用continue,再i=3的时候输出阴阳师并跳过第三遍Hello,开始第四次循环
  3. 如果用break,再i=3终止循环输出两次"Hello,world"和一次阴阳师和"go…hou…mu"
  • 17
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值