第四章总结(流程控制)

本文介绍了Java编程中的复合语句,包括局部变量、嵌套语句;条件语句,如if单分支、if...else双分支、if...elseif多分支以及switch多分支;循环语句,涉及while、do...while和for循环,以及循环控制中的break和continue语句的应用。通过示例代码和流程图,详细阐述了这些语句的使用方法和逻辑控制。
摘要由CSDN通过智能技术生成

1.复合语句

public class Compound {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int x = 20;
        {
            int y = 40;
            System.out.println(y);
            int z = 245;
            boolean b;
            {
                b = y > z;
                System.out.println(b);
            }                            //复合语句
        }
        String word = "hell java";
        System.out.println(word);
    }
}

2.条件语句

1.if条件语句

if条件语句是一个重要的编程语句,用于告诉程序在某个条件成立的条件的情况下执行某段语句,而在另一种情况下执行另外的语句。

使用if条件语句,可选择是否要执行紧跟在条件

判断手机号码是否存在

public class TakePhone {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int phoneNumber = 123456789;                        //创建变量,保存电话号码
        if(phoneNumber!= 84972266) {                        //如果此电话号码不是84972266
            System.out.println("对不起,您拨打的号码不存在!");    //提示号码不存在
        }
    }
}

结果如下

流程图如下

1.if...else语句

if...else是条件语句中最常用的一种形式,它会针对某种条件有选择的做出处理。通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”。

使用if...else语句校验密码

public class Login {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int password = 987654321;                    //密码值
        if(123456789 == password) {                    //如果密码是123456789
            System.out.println("密码正确,欢迎登录");    //密码正确的提示
        }else {                                        //否则
            System.out.println("密码错误,拒绝登录");    //密码错误的提示
        }
    }
}

结果如下

流程图如下

2.if...else if多分支语句

if...else if多分支语句用于针对某一事件的多种情况进行处理。通常表现为“如果满足某种条件,就进行某种处理,否则如果满足另一种条件则执行另一种处理”。

使用if..else if语句实现饭店座位分配

public class Restaurant {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.println("欢迎光临,请问有多少人用餐?");        //输出物体提示
        int count = 9;                                        //用餐人数
        System.out.println("回答:"+ count + "人");            //输出回答
        if(count <= 4) {                                    //如果人数小于4人
            System.out.println("客人请到大厅4人用餐");            //请到4人桌
        }else if(count > 4 && count <= 8) {                    //如果人数在4~8人
            System.out.println("客人请到大厅8人用餐");            //请到8人桌
        }else if(count > 8 && count <=16) {                    //如果人数在8~16
            System.out.println("客人请到楼上包厢用餐");            //请到包厢
        }else {                                //当以上条件都不成立时,执行该语句块
            System.out.println("抱歉,我们店没有这么大的包厢!");    //输出信息
        }
    }
}

结果如下

流程图如下

2.Switch多分支语句

Switch语句首先计算表达式的值,如果表达式的计算结果和某个case后面的常量值相同,则执行该case语句后的若干个语句直到遇到break语句为止。若没有一个常量的值与表达式相同,则执行default后面的语句。default语句为可选的,如果它不存在,且Switch语句中表达式的值不与任何case的常量值相同,Switch语句则不做处理。

使用Switch语句为考试分数分级

import java.util.Scanner;                            //引入Scanner类
public class Grade {
    public static void main(String[] args) {        
        // TODO Auto-generated method stub            
        Scanner sc = new Scanner(System.in);        //创建扫描器,接收控制台输入内容
        System.out.println("请输入成绩:");            //输出字符串
        int grade = sc.nextInt();                    //获取控制台输入的数字
        switch(grade) {                                //使用switch判断数字
        case 10:                                    //如果等于10,则继续执行下一行代码
        case 9:                                        //如果等于9
            System.out.println("成绩为优");            //输出"成绩为优"
            break;                                    //结束判断
        case 8:                                        //如果等于8
            System.out.println("成绩为良");            //输出"成绩为良"
            break;                                    //结束判断
        case 7:                                        //如果等于7
        case 6:                                        //如果等于6
            System.out.println("成绩为中");            //输出"成绩为中"
            break;                                    //结束判断
        case 5:                                        //如果等于5,则继续执行下一行代码
        case 4:                                        //如果等于4,则继续执行下一行代码
        case 3:                                        //如果等于3,则继续执行下一行代码
        case 2:                                        //如果等于2,则继续执行下一行代码
        case 1:                                        //如果等于1,则继续执行下一行代码
        case 0:                                        //如果等于0,则继续执行下一行代码
            System.out.println("成绩为差");            //输出"成绩为差"
            break;                                    //结束判断
        default:                                    //如果不符合以上任何一个结果
            System.out.println("成绩无效");            //输出"成绩无效"
        }
        sc.close();                                    //关闭扫描器
    }
}

结果如下

流程图如下

3.循环语句

1.while循环语句

while语句也称条件判断语句,它的循环方式为利用一个条件来控制是否要继续反复执行这个语句。

语法如下:

while(条件表达式){
    语法序列
}

当条件表达式的返回值为真时,则执行"{}"中的语句,当执行完"{}"中的语句后,重新判断条件表达式的返回值,直到表达式返回的结果为假时,退出循环。

创建Getsum类,在主方法中通过

public class GetSum {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int x = 1;                            //从1开始
        int sum = 0;                        //相加的结果
        while (x <= 1000) {                    //循环1000次
            sum = sum + x;                    //sum与之前计算的和相加
            x++;                            //每次循环后的x值+1
        }
        System.out.println("sum =" + sum);    //输出最终的相加结果
    }
}

结果如下

流程图如下

2.do...while循环语句

do...while循环语句与while语句类似,它们之间的区别是while语句为先判断条件是否成立再执行循环体,而do...while循环语句则先执行一次循环后,再判断条件是否成立。也就是说,do...while循环语句“{}”中的程序段至少要被执行一次。

使用de...while语句进行用户登录验证

创建LoginService类,首先提示用户输入6位密码,然后使用Scanner扫描器类获取用户输入的密码,最后进入do...while循环进行判断,如果用户输入的密码不是“931567”,则让用户反复输入,直到输入正确密码为止。

import java.util.Scanner;
public class LoginService {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner sc = new Scanner(System.in);            //创建扫描器,获取控制台输入的值
        int password;                                    //保存用户输入的密码
        do {                                            
            System.out.println("请输入6位数字密码");        //输出提示
            password = sc.nextInt();                    //将用户在控制台输入的密码记录下来
        }while (931567 != password);                    //如果用户输入的密码不是931567则继续执行循环
        System.out.println("登录成功");                    //提示循环已结束
        sc.close();                                        //关闭扫描器
    }
}

结果如下

流程图如下

3.for循环语句

for循环是java程序设计中最有用的循环语句之一。一个for循环可以用来重复执行某条语句,直到某个条件得到满足。for循环有两种语句,一是传统的for语句,一种是foreach语句。

  1. for语句

传统的for语句中有3个表达式,其语法如下:

表达式1:初始化表达式,负责完成变量的初始化。

表达式2:循环条件表达式,值为boolean型的表达式,指定循环条件。等同于while循环里的表达式。

表达式3:每次循环结束后执行的

使用for循环计算2~100的所有偶数之和

public class Circulate {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int sum = 0;                                    //偶数相加后的结果
        for (int i = 2;i <= 100;i += 2){                
            sum = sum + i;                                //指定循环条件及循环体
            }
        System.out.println("2+4+6+8......+100的值:" + sum);    //将相加后的结果输出
    }

}

结果如下

流程图如下

2.foreach语句

foreach语句是for语句的特殊简化版本,不能完全取代for语句,但如何foreach语句都可以改写为for语句版本。foreach并不是一个关键字。习惯上将这种特殊的for语句格式称为foreach语句。foreach语句在历代数组等方面为程序员提供了很大的方便。

使用foreach语句遍历整型数组

public class Repetition {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
          int arr[] = {5,13,96};                            //一维整型数组
            System.out.println("一维数组中的元素分别为:");
            //x的类型与arr元素的类型相同。for循环依次去除arr中的值并赋值给x
            for (int x: arr) {        
                System.out.println(x);                    //输出遍历中的元素值
         }
    }
}

结果如下

流程图如下

循环控制

break语句

使用break语句可以跳出Switch结构。在循环结构中,同样也可用break语句跳过当前循环体,从而中断当前循环

输出1~20出现的第一个偶数

public class BreakTest {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
         for(int i = 1;i < 20;i ++) {    
                if(i%2 == 0) {                                    //如果i是偶数
                    System.out.println(i);                         //输出i的值
                    break;                                       //结束循环
                }
            }
            System.out.println("---end---");                     //结束时输出一行文字
    }
}

结果如下

流程图如下

使用标签让break结束外层循环

public class BreakInsideNested {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
          for(int i = 1;i <=3;i ++) {            //外层循环
                for(int j = 1;j <= 5;j ++) {     //内层循环
                    if(j == 4) {                   //内层循环至第四次时就结束
                        break;
                    }
                    System.out.println("i="+ i +" j="+ j);    //输出i和j的值
                }
            }
        }
    }

结果如下

流程图如下

continue语句

continue语句是针对break语句的补充。continue不是立即跳出循环体,而是跳过本次循环,回到循环的条件测试部分,重新开始执行循环。在for循环语句中遇到continue后,首先执行循环的增量部分,然后进行条件测试,在while和do...while循环中,continue语句使控制直接回到条件测试部分。

输出1~20的奇数

public class ContinueTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
          for (int i = 1;i <= 20;i ++) {
                if(i %2 == 0) {                  //如果i是偶数
                    continue;                   //跳到下一循环
                }
                System.out.println(i);            //输出i的值
          }
    }
}

结果如下

流程图如下

总结:

学会了复合语句,条件语句,循环语句,循环控制语句

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值