流程控制语句结构

Posted on 2019-12-13 19:24  马鸣浩  阅读(246)  评论(0编辑  收藏  举报

顺序结构

特点:依次从上往下顺序执行

输出语句

1、输出后换行

System.out.println();

2、输出后不换行

System.out.print();

输入语句

步骤:

1、准备键盘输入的变量

2、用输出语句提示用户输入xx信息

3、接收键盘输入结果

//1、准备键盘输入的变量
java.util.Scanner input = new java.util.Scanner(System.in);

//2、提示输入
System.out.print("姓名:");
String name = input.next();

System.out.print("年龄:");
int age = input.nextInt();

System.out.print("体重:");
double weight = input.nextDouble();

System.out.print("性别:");
char gender = input.next().charAt(0);

System.out.print("是否已婚(true/false):");
boolean marry = input.nextBoolean();

next()与nextLine()

next():遇到空白符就输入结束
nextLine():能够接收一行,遇到换行符结束

分支结构

条件判断

1、单分支条件判断

语法结构:

if(条件表达式){
	语句块;
}

执行特点:

当条件表达式成立时,执行语句块,否则就不执行。

要求:

(1)if(条件表达式)中“条件表达式”必须是boolean类型

(2){语句块;}中当语句块只有一个语句时,可以省略{},不建议省略

一个语句可以是简单的输出语句,赋值语句,也可以是复合语句,例如一个完整的单分支、双分支,多分支,选择分支,或一个完整的循环结构...

2、双分支条件判断

语法结构:

if(条件表达式){
	语句块1;
}else{
	语句块2;
}

执行特点:

当条件表达式成立时,执行语句块1,否则执行语句块2。

要求:

(1)if(条件表达式)中“条件表达式”必须是boolean类型

(2){语句块;}中当语句块只有一个语句时,可以省略{},不建议省略

3、多分支条件判断

if(条件表达式1){
	语句块1;
}else if(条件表达式2){
	语句块2;
}else if(条件表达式2){
	语句块2;
}
。。。
【
else{
	语句块n+1;
}
】

执行特点:

(1)先判断条件表达式1,

A:如果条件表达式1成立,执行语句块1,结束整个多分支结构

B:如果条件表达式1不成立,不执行语句块1,转到(2)

(2)判断条件表达式2,

A:如果条件表达式2成立,执行语句块2,结束整个多分支结构

B:如果条件表达式2不成立,不执行语句块2,转到(3)

(3)。。。。

(n+1)当以上所有条件表达式都不成立,如果存在最后单独的else,执行最后的else中的语句块n+1;

要求:

(1)if(条件表达式)中“条件表达式”必须是boolean类型

(2){语句块;}中当语句块只有一个语句时,可以省略{},不建议省略

(3)当多个条件的范围没有重叠部分,顺序可以随意,但是条件范围如果有重叠部分,顺序有要求,范围小的在上面,大的在下面

4、嵌套

在任意一个if的{}或者else的{}中都可以再嵌套任意一种分支结构。

执行原则:

如果嵌套在if的{}中,当外面的if条件满足时,才会看里面的分支结构;

如果嵌套在else的{}中,当外面的if条件不满足时,才会进入else里面的分支结构;

选择结构

语法格式:

switch(表达式){
case 常量值1:
	语句块1;
	【break;】
case 常量值2:
	语句块2;
	【break;】
....
default:
	语句块n+1;
	【break;】
}

执行的特点:

(1)入口

A:case入口:当switch(表达式)中表达式的值与某个case后面的常量值匹配,就从这个case进入

B:default入口:当switch(表达式)中表达式的值与所有case后面的常量值都不匹配,从default进入

(2)出口

A:自然出口:从switch的结束}结束

B:中断出口:遇到break,return...

(3)一旦从入口进入,在没有遇到出口之前,一直往下执行,甚至会贯穿case

要求:

(1)switch(表达式)的类型有要求:4种基本数据类型(byte,short,char,int),两种引用数据类型(JDK1.5之后枚举,JDK1.7String类型)

(2)case后面必须是常量值,不能是变量

(3)case后面的常量值不能重复

循环结构

for循环

1、语法结构

for(;;){
	循环体语句块;
}

执行特点:

(1)如果在循环体语句块中没有break,return等结束循环的语句的话,那么它就是死循环

for(初始化表达式; 循环条件; 迭代表达式){
	循环体语句块;
}

执行特点:

(1)先执行初始化表达式;

(2)判断循环条件

A:条件成立,执行循环体语句块,然后执行迭代表达式,再回到(2)

B:条件不成立,结束for

要求:

for(;;)两个分号不能多也不能少;

循环条件必须是boolean类型

如果循环体语句块只有一个语句,{}可以省略,但是不建议省略

while循环

1、语法结构

while(循环条件){
	循环体语句块;
}

执行过程:

(1)先判断循环条件

A:如果条件成立,执行循环体语句块,然后回到(1)

B:如果条件不成立,直接结束while

要求:

(1)while(循环条件)的条件必须是boolean

(2)如果循环体语句块只有一个语句,{}可以省略,但是不建议省略

do...while循环

语法结构:

do{
	循环体语句块;
}while(循环条件);

执行过程:

(1)先执行一次循环体语句块

(2)判断循环条件

A:如果条件成立,再次执行循环体语句块,然后回到(2)

B:如果条件不成立,直接结束do..while

要求:

(1)while(循环条件)的条件必须是boolean

(2)如果循环体语句块只有一个语句,{}可以省略,但是不建议省略

(3)do...while结构的while()小括号后面的;不能省略

嵌套

外循环循环一次,内循环循环一轮

跳转

1、break

用于(1)switch,表示结束当前switch(2)循环,表示结束当前循环

说明:如果break在嵌套循环的内循环中,只能结束内循环

2、continue

用于(1)循环,表示提前结束本次循环,跳过本次循环剩下的循环体语句块,提前进入迭代