流程控制
- 流程控制语句分类
顺序结构
分支结构(if,switch)
循环结构(for,while,do…while)
1.1 顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
顺序结构的执行流程图:
- 分支语句——if语句
2.1 if语句格式1
格式:
if(关系表达式){
语句体;
}
执行流程:
(1)首先计算关系表达式的值
(2)如果关系表达式的值为true就执行语句体
(3)如果关系表达式的值为false就不执行语句体
(4)继续执行后面的语句内容
执行流程图:
案例:
public class ifDemo {
public static void main(String[] args) {
//定义两变量
int a = 10;
int b = 20;
//需求:判断a和b的值是否想等,如果相等,就在控制台语句输出:a等于b
if(a == b) {
System.out.println("a等于b");
}
//需求:判断a和c的值是否想等,如果相等,就在控制台语句输出:a等于c
int c = 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)继续执行后面的语句内容
执行流程图:
案例:
public class ifDemo {
public static void main(String[] args) {
//定义两变量
int a = 10;
int b = 20;
//需求:判断a是否大于b,如果是,在控制台输出:a的值大于b,如果不是,在控制台输出:a的值不大于b
if(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;
}else if(关系表达式2) {
语句体2;
}
……
else{
语句体n+1;
}
执行流程:
(1)首先计算关系表达式1的值
(2)如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
(3)如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
……
(4)如果没有任何关系表达式为true,就执行语句体n+1
执行流程图:
案例:
import java.util.Scanner;
public class ifDemo{
public static void main(String[] args) {
System.out.println("开始");
//需求:键盘录入一个星期数(1~7),输出对应的星期一~星期日
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个星期数(1~7):");
int week = sc.nextInt();
if(week == 1){
System.out.println("星期一");
}else if(week == 2){
System.out.println("星期二");
}else if(week == 3){
System.out.println("星期三");
}else if(week == 4){
System.out.println("星期四");
}else if(week == 5){
System.out.println("星期五");
}else if(week == 6){
System.out.println("星期六");
}else{
System.out.println("星期日");
}
System.out.println("结束");
}
}
运行结果:
开始
请输入一个星期数(1~7):
7
星期日
结束
- 循环语句
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)继续
执行流程图:
案例:
public class forDemo{
public static void main(String[] args) {
//需求:在控制台输出5次HelloWorld
System.out.println("HelloWwold");
System.out.println("HelloWwold");
System.out.println("HelloWwold");
System.out.println("HelloWwold");
System.out.println("HelloWwold");
System.out.println("………………………………");
//用循环改进
for(int i = 1; i<=5; i++){
System.out.println("HelloWwold");
}
}
}
运行结果:
HelloWwold
HelloWwold
HelloWwold
HelloWwold
HelloWwold
………………………………
HelloWwold
HelloWwold
HelloWwold
HelloWwold
HelloWwold
3.2 while循环语句
3.2.1 while循环语句格式
基本格式:
while(条件判断语句){
循环体语句;
}
完整格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
执行流程:
(1)执行初始化语句
(2)执行条件判断语句,看其结果是true还是false,如果是false,循环结束;如果是true,继续执行
(3)执行循环体语句
(4)执行条件控制语句
(5)回到(2)继续
执行流程图:
案例:
public class forDemo{
public static void main(String[] args) {
int i = 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)继续
执行流程图:
案例:
public class forDemo{
public static void main(String[] args) {
int i = 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)导包
import java.util.Random;
导包的动作必须出现在类定义的上面
(2)创建对象
Random r = new Random();
上面这个格式里面,r是变量名,可以变,其他的都不允许变
(3)获取随机数
int number = r.nextInt(10);//获取数据的范围:(0,10)包括0,不包括10
上面这个格式里面,number是变量名,可以变,数字10可以变,其他的都不允许变