java流程控制

java流程控制

程序默认从上到下执行,但是可以通过流程控制语句(选择/判断/循环)改变运行顺序

1.if判断

如果满足条件则执行对应语句。
if分支:
    单分支
    双分支
    多分支

if的单分支

    if(布尔表达式){
        语句块;
    }

执行流程:如果布尔表达式为true,执行语句块,否则,继续执行程序后面的语句。

if的双分支

    if(布尔表达式){
        语句块1;
    }else{
        语句块2;
    }

执行流程:如果布尔表达式为true,执行语句块1,否则,执行语句块2(跳过语句块1)执行完语句块2后继续执行程序后面的语句。

if的多分支

    if(布尔表达式1){
        语句块1;
    }else if(布尔表达式2){
        语句块2;
    }else{
        语句块3;
    }

执行流程:如果布尔表达式1为true,执行语句块2,否则,判断布尔表达式2,如果布尔表达式2为true则执行语句块2,否则执行语句块3。即满足哪一个布尔表达式执行对应语句块,跳过其他语句块,如果都不为true,则执行else里的语句块。

!!!在这里根据需求书写多个else if 同样根据需求选择合适的分支结构。

例子

public static void main(String arg[]){
     System.out.println("请输入一个成绩:");
     Scanner scanner = new Scanner(System.in);
     int gread = scanner.nextInt();
     if (gread<=100&&gread>=90) {
        System.err.println("A类生");
    }else if (gread>=60) {
        System.out.println("B类生");
    }else if (gread<60) {
        System.out.println("C类生");
    }else {
        System.out.println("输入的分数错误");
    }
     scanner.close();
 }

2.switch选择

switch语句允许变量与多个值进行相等性检测,每个值被一个case语句调用和检测。当匹配成功执行相应语句。

switch语句的形式

switch(变量){
    case 值1:
    语句块;
    break;
    case 值2;
    语句块2;
    break;
    …………
    …………
    default:
    语句块n;
}

执行流程:匹配变量的值和case后面的值,相同执行对应语句块。如果匹配不成功则执行default的语句块。

!!!注意:

1.switch中变量的数据类型只能是:byte/short/int/char/string
2.可以有多个case值进行不同的操作,case的值不可以重复。
3.case后面的值的类型必须与switch的变量类型相同,并且必须是常量或者字面量。
4.遇到break就跳出该switch语句,如果没有break,则继续执行下一个case语句直到遇到break。
5.一个switch语句可以有一个可选择的default条件,一般出现在switch末尾,如果case的条件都是false那么default可以用于执行某种任务,并且在default中不需要break。

例子

public static void main(String[] args) {
    try{
        System.out.println("请输入年龄:");
        int age = new Scanner(System.in).nextInt();
        switch(age){
            case 2:
            case 3:
                System.out.println("小班");
            break;
            case 4:
                System.out.println("中班");
            break;
            case 5:
            case 6:
                System.out.println("大班");
            break;
            default:
                System.out.println("超出范围");
        }
    }catch(InputMismatchException i){
        System.out.println("输入的数据不符合类型");
    }

3.循环

for循环

for循环是一种允许我们编写一个执行指定次数循环的控制结构

for(初始化; 布尔表达式 ; 更新){
    //语句块;
}

执行流程:初始化步骤首先执行,且执行一次。这个步骤允许我们声明并初始化任何控制循环变量。不是必须如果为空必须有分号。然后执行布尔表达式,结果为true执行一次语句块,然后控制流程跳回更新语句再判断一次布尔表达式,结果为true继续执行语句块,如此往复,直到布尔表达式为false循环结束

例子

输出0-100
public static void main(String[] args) {
    for (int i = 0; i <= 100; i++) {
        System.out.println(i);            
    }
}
计算100以内所有偶数和
public static void main(String[] args) {
    int sum = 0;
    for (int i = 1; i <= 100; i++) {
        if (i%2==0) {
            sum += i;
        }
    }
    System.out.println(sum);
}
输出并计数水仙花数
public static void main(String[] args) {
    int sum = 0;
    for (int i = 100; i < 1000; i++) {
        int a , b , c;
        a = i/100%10;
        b = i/10%10;
        c = i/1%10;
        if (a*a*a+b*b*b+c*c*c==i) {
            System.out.println(i);
            sum += 1;
        }
    }
    System.out.println("有"+sum+"个水仙花数");
}

while循环

while循环是一种允许重复执行某项任务的控制结构
语法格式
while(布尔表达式){
    语句块;
}

执行流程:首先检测布尔表达式。如果为true就执行语句块,语句块执行完成后又回到布尔表达式,再次检测如果为true继续执行语句块,直到布尔表达式为false。

例子

判断输入的数是几位数
    System.out.println("请输入一个数");
    int num = scanner.nextInt();
    int i = 0;
    while (num>0) {
        num/=10;
        i++;
    }
    System.out.println("是"+i+"位数");

break和continue

break是中断的意思即跳出循环让循环体提前结束
continue是继续的意思即结束本次循环进行下次循环

do循环

语法格式
do{
    语句块;
}while(布尔表达式);

注意布尔表达式后面必须有分号

执行流程:先运行一次语句块,然后判断布尔表达式,如果为true就继续执行一次语句块,然后在检测,如果为true继续执行语句块,直到布尔表达式为false。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值