流程控制
1. 流程控制语句分类
顺序结构
分支结构(if,switch)
循环结构(for,while,do…while)
1.1 顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
顺序结构的执行流程图:
2. 分支语句——if语句
2.1 if语句格式1
格式:if(关系表达式){ 语句体;}
执行流程:
(1)首先计算关系表达式的值
(2)如果关系表达式的值为true就执行语句体
(3)如果关系表达式的值为false就不执行语句体
(4)继续执行后面的语句内容
执行流程图:
案例:
publicclassifDemo { publicstaticvoidmain(String[] args) { //定义两变量inta=10; intb=20; //需求:判断a和b的值是否想等,如果相等,就在控制台语句输出:a等于bif(a==b) { System.out.println("a等于b"); } //需求:判断a和c的值是否想等,如果相等,就在控制台语句输出:a等于cintc=10; if(a==c) { System.out.println("a等于c"); } System.out.println("结束"); } }
运行结果:
a等于c结束
2.2 if语句格式2
格式:if(关系表达式) { 语句体1;}else { 语句体2;}
执行流程:
(1)首先计算关系表达式的值
(2)如果关系表达式的值为true就执行语句体1
(3)如果关系表达式的值为false就执行语句体2
(4)继续执行后面的语句内容
执行流程图:
案例:
publicclassifDemo { publicstaticvoidmain(String[] args) { //定义两变量inta=10; intb=20; //需求:判断a是否大于b,如果是,在控制台输出:a的值大于b,如果不是,在控制台输出:a的值不大于bif(a>b) { System.out.println("a的值大于b"); }else { System.out.println("a的值不大于b"); } System.out.println("结束"); } }
运行结果:
a的值不大于b结束
2.3 if语句格式3
格式:if(关系表达式1){ 语句体1;}elseif(关系表达式2) { 语句体2;} ……else{ 语句体n+1; }
执行流程:
(1)首先计算关系表达式1的值
(2)如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
(3)如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
……
(4)如果没有任何关系表达式为true,就执行语句体n+1
执行流程图:
案例:
importjava.util.Scanner; publicclassifDemo{ publicstaticvoidmain(String[] args) { System.out.println("开始"); //需求:键盘录入一个星期数(1~7),输出对应的星期一~星期日Scannersc=newScanner(System.in); System.out.println("请输入一个星期数(1~7):"); intweek=sc.nextInt(); if(week==1){ System.out.println("星期一"); }elseif(week==2){ System.out.println("星期二"); }elseif(week==3){ System.out.println("星期三"); }elseif(week==4){ System.out.println("星期四"); }elseif(week==5){ System.out.println("星期五"); }elseif(week==6){ System.out.println("星期六"); }else{ System.out.println("星期日"); } System.out.println("结束"); } }
运行结果:
开始请输入一个星期数(1~7):7星期日结束
3. 循环语句
3.1 for循环语句
3.1.1 循环结构
特征:重复做某件事;具有明确的开始和停止标志
循环结构的组成:
(1)初始化语句:用于表示循环开启时的起始状态
(2)条件判断语句:用于表示循环反复执行的条件
(3)循环体语句:用于表示循环反复执行的内容
(4)条件控制语句:用于表示循环执行中每次变化的内容
3.1.2 for循环语句格式
格式:for (初始化语句;条件判断语句;条件控制语句) { 循环体语句;}
执行流程:
(1)执行初始化语句
(2)执行条件判断语句,看其结果是true还是false。如果是false,循环结束;如果是true,继续执行
(3)执行循环体语句
(4)执行条件控制语句
(5)回到(2)继续
执行流程图:
案例:
publicclassforDemo{ publicstaticvoidmain(String[] args) { //需求:在控制台输出5次HelloWorldSystem.out.println("HelloWwold"); System.out.println("HelloWwold"); System.out.println("HelloWwold"); System.out.println("HelloWwold"); System.out.println("HelloWwold"); System.out.println("………………………………"); //用循环改进for(inti=1; i<=5; i++){ System.out.println("HelloWwold"); } } }
运行结果:
HelloWwoldHelloWwoldHelloWwoldHelloWwoldHelloWwold………………………………HelloWwoldHelloWwoldHelloWwoldHelloWwoldHelloWwold
3.2 while循环语句
3.2.1 while循环语句格式
基本格式:while(条件判断语句){ 循环体语句; }
完整格式:初始化语句; while(条件判断语句){ 循环体语句; 条件控制语句; }
执行流程:
(1)执行初始化语句
(2)执行条件判断语句,看其结果是true还是false,如果是false,循环结束;如果是true,继续执行
(3)执行循环体语句
(4)执行条件控制语句
(5)回到(2)继续
执行流程图:
案例:
publicclassforDemo{ publicstaticvoidmain(String[] args) { inti=1; while(i<=5){ System.out.println("HelloWorld!"); i++; } } }
运行结果:
HelloWorld!HelloWorld!HelloWorld!HelloWorld!HelloWorld!
3.3 do…while循环语句
3.3.1 do…while循环语句格式
基本格式:do{ 循环体语句;}while(条件判断语句);
完整格式:初始化语句; do{ 循环体语句; 条件控制语句; }while(条件判断语句);
执行流程:
(1)执行初始化语句
(2)执行循环体语句
(3)执行条件控制语句
(4)执行条件判断语句,看其结果是true还是false。如果是true,继续执行;如果是false,循环结束
(5)回到(2)继续
执行流程图:
案例:
publicclassforDemo{ publicstaticvoidmain(String[] args) { inti=1; do{ System.out.println("HelloWorld!"); i++; }while(i<=5); } }
运行结果:
HelloWorld!HelloWorld!HelloWorld!HelloWorld!HelloWorld!
3.3.2 三种循环的区别
(1)三种循环的区别:
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行);do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)。
(2)for和while的区别:
条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了;条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用。
(3)死循环格式:
for(;;){} while(true){} do{}while(true);
while的死循环格式是最常用的,命令提示符窗口中Ctrl+C可以结束死循环。
3.4 控制跳转语句
跳过某次循环体内容的执行:continue;
注:使用是基于条件控制的
终止循环体内容的执行:break;
注:使用是基于条件控制的
continue用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行;
break用在循环中:基于条件控制,终止循环体内容的执行,也就是说结束当前的整个循环。
3.5 循环嵌套
3.5.1 循环嵌套概述
语句结构:
(1)顺序语句:以分号结尾,表示一句话的结束
(2)分支语句:
①:一对大括号表示if的整体结构,整体描述一个完整的if语句
②:一对大括号表示switch的整体结构,整体描述一个完整的switch语句
(3)循环语句:
①:一对大括号表示for的整体结构,整体描述一个完整的for语句
②:一对大括号表示while的整体结构,整体描述一个完整的while语句
③:do…while以分号结尾,整体描述一个完整的do…while语句
任何语句对外都可以看成是一句话,一句代码。
分支语句中包含分支语句称为分支嵌套。
循环语句中包含循环语句称为循环嵌套。
3.6 Random
3.6.1 Random的作用和使用步骤
作用:用于产生一个随机数
使用步骤:
(1)导包
importjava.util.Random; 导包的动作必须出现在类定义的上面
(2)创建对象
Randomr=newRandom(); 上面这个格式里面,r是变量名,可以变,其他的都不允许变
(3)获取随机数
intnumber=r.nextInt(10);//获取数据的范围:(0,10)包括0,不包括10上面这个格式里面,number是变量名,可以变,数字10可以变,其他的都不允许变