Java04-java流程控制语句

Java流程控制语句:

  1. 选择结构:if、switch
  2. 循环结构:for、while、do...while
  3. 跳转控制结构:return、continue、break

一、选择结构

1、if选择语句

语句格式:

if(关系表达式1){

                      语句体1;

                  }else if(关系表达式2){

                     语句体 2;

                  } ...{

                  }else{

                     语句体3;

                 }

if语句中只有关系表达式为true时才会执行,为false时执行else中的语句
if语句注意事项:

      1、关系表达式可以很复杂,但是结果一定是boolean类型。

      2、当语句体只有一行的时候,可以将大括号省略,但是有多行的时候,若省略了只有第一行是与if语句有关的,建议每次加上大括号。

     3、可以在小括号后面加分号,但是这就说明了if语句没有语句体实现。

当if-else语句体是一个输出或者是其他没有值的语句体时候,无法转化为三目运算符
if练习题:
import java.util.Scanner;

class Test {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入你的成绩:");
    int score = sc.nextInt();
    if (score >= 90) {
      System.out.println("优秀");
    } else if (score >= 80) {
      System.out.println("良好");
    } else if (score >= 70) {
      System.out.println("中等");
    } else if (score >= 60) {
      System.out.println("及格");
    } else {
      System.out.println("不及格");
    }
  }
}

2、switch选择语句

语句格式:

        switch(表达式){

                case 值1:

                语句体1

                break;

                case 值2:

                语句体2

                break;

                ...

                default:

                语句体n

                break;

        }

运行流程:

严格按照先自上而下匹配case,当匹配到对应的case后,执行其中语句体,然后遇到break,结束整个switch语句; 当没有对应的case匹配的时候,就会执行default中的语句体,当遇到break的时候,结束整个语句体,和default语句位置无关。

使用switch语句的注意事项:

1、小括号中的表达式必须是byte,short,int,char,String,枚举其中一种,其他的不行。

2、case后面匹配的内容必须是一个常量值,不能是一个变量。

3、default语句必须要有吗?可以没有,但是可能程序不够严谨。

4、default语句位置必须是在所有的case后面吗?不一定,严格按照执行流程顺序。

5、break语句能不能不写?可以,但是会造成switch语句穿透,结果可能不是我们想要的。

switch练习题:
import java.util.Scanner;

class Test {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请投入购买饮料的金额:");
    int price = sc.nextInt();
    switch(price){
      case 1: 
      System.out.println("欢迎购买冰露");
      break;
      case 3:
      System.out.println("欢迎购买可口可乐");
      break;
      case 5:
      System.out.println("欢迎购买红牛");
      break;
      case 8:
        System.out.println("欢迎购买哇哈哈");
      break;
      default:
      System.out.println("请投入正确的金额");
      break;

    }
  }
}

3、我们以后使用if选择语句还是switch选择语句呢?

1、if语句的使用场景

1)判断的条件是boolean类型的时候

2)判断的条件是一个范围的时候

3)判断一个值

2、switch语句的使用场景

判断一个常量值

二、循环结构

1、for循环

语句格式:

for(初始化条件语句;判断条件语句;控制条件语句){

                语句体;

}

for循环使用注意事项:

1、初始化条件语句能不能不写?可以不写,判断条件语句一般来说也就没有了依据,就成了死循环。

2、初始化条件语句能不能写在for循环的外部作用域中?可以,作用域的区别。

3、判断条件语句能不能不写?可以,但是成了死循环。

4、控制条件语句能不能不写?可以,也成了死循环。

5、初始化条件语句只能定义一个变量吗?不是,可以一次性定义多个。

6、当循环体内容只有一行的时候,大括号可以省略,建议永远不要省略。

7、初始化条件只会执行一次。

for练习题:
class Test {
  public static void main(String[] args) {
    int count = 0;
    for (int i = 100; i <= 999; i++) {
        int baiWei = i / 100;
        int shiWei = i / 10 % 10;
        int geWei = i % 10;
        if ((baiWei * baiWei * baiWei + shiWei * shiWei * shiWei + geWei * geWei * geWei) == i) {
            System.out.println("水仙花数:" + i);
            count++;
        }
    }
  }
}

2、while循环

语句格式:

初始化条件语句;

while(判断条件语句){

        语句体;

        控制条件语句;

}

while注意事项:

1、以后遇到明确范围的需求的时候,使用for循环。

2、不明确循环范围的时候,使用while循环。

3、从内存使用效率来说,while循环结束后,定义的变量依旧是在的,占用内存 而for循环定义的变量随着for循环的结束等待被回收,推荐用for循环。

4、从循环的次数来说,for循环和while循环的次数是一样的。

while练习题:

// 我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?( while循环)

public class Test {
    public static void main(String[] args) {
        int high = 884800;
        int thickness = 1;

        int count = 0;
        while (thickness < high) {
            thickness *= 2;
            count++;
        }

        System.out.println("共折叠了 " + count + " 次,纸张的厚度为:" + thickness+"米");


    }
}

3、do...while循环

语句格式:

初始化条件语句;

do{

        语句体;

        控制条件语句;

}while(判断条件语句);

while循环是先进行一次判断,然后再进行循环体内容 而do...while循环,无论是否符合条件,都会先进行一次循环体内容,然后再根据判断条件来决定是否继续执行。
while和do...while的对比:
public class Test {
    public static void main(String[] args) {
        int i = 4;
        while (i>5){
            System.out.println("好好学习,天天向上!");
            i++;
        }
        System.out.println("--------------------------------------");
        int j = 4;
        do{
            System.out.println("好好学习,天天向上!");
            j++; 
        }while (j>5);

        
    }
}

三、跳转控制结构

1、return

注意事项:

1、return是作用在方法的内部中当做最后一个语句执行的。

2、主要作用是用于结束一个方法的,返回一个返回值。

3、一个方法只能有一个return生效。

2、continue

注意事项:

1、结束当次循环,继续后续循环。

2、单独使用没有任何意义,需要在循环的内部中使用。

3、break

注意事项:

1、单独使用没有任何意义,需要在switch语句或者循环语句中使用。

2、使用break作用是结束当前循环。

3、双重for循环跳出的话,可以给for循环起名字进行跳出。

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

网络!搬运工

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值