流程控制语句结构
流程语句控制结构分为:
1.顺序结构: 按顺序执行
2.分支结构:选择一个分支执行
3.循环结构:重复执行某个语句
一. 顺序结构
执行过程:从上往下执行
1. 输入/输出语句
1.1 输出语句
System.out.println("我是一条输出语句");
# 输出变量
int a = 1;
System.out.println(a);
1.2 输入语句
步骤:
准备Scanner类型变量
提示输入内容
接受输入内容
例子
// 1..准备Scanner类型变量
java.util.Scanner input = new java.util.Scanner(System.in); //System.in 代表从键盘输入
// 2.提示输入
System.out.print("输入整数吧: ");
// 3.接受输入内容
int num = input.nextInt()
//列出各种数据类型的输入
int num = input.nextInt();
long bigNum = input.nextLong();
double d = input.nextDouble();
boolean b = input.nextBoolean();
String s = input.next();
char c = input.next().charAt(0);//先按照字符串接收,然后再取字符串的第一个字符(下标为0)
2.分支结构
分支结构:按条件执行某个分支代码
分为:
# 1.条件表达式
if(条件表达式1){
block;}else{block;}
# 2. 选择结构
switch(常量值){
case 常量值1:
block;
break;
...
}
2.1 条件判断
2.1.1 单分支
语法格式
if(条件表达式){
block;
}
执行过程:如果条件表达式成立,则执行 {} 中代码块,否则不执行;
if(条件表达式)中的条件表达式的结果必须是boolean类型
如果单语句可以省略{},但是不建议
## 判断2月是否29天;
int year = 2019;
int days = 28;
if(year%4==0 && year%100!=0 || year%400==0){
days= 29;
}
2.1.2 双分支结构
语法格式:
if(条件表达式){
当条件表达式成立(true)时需要执行的语句块1;
}else{
当条件表达式不成立(false)时需要执行的语句块2;
}
执行过程:如果条件表达式成立,则执行 {} 中代码块,否则执行else{}里面代码块;
if(条件表达式)中的条件表达式的结果必须是boolean类型
如果单语句可以省略{},但是不建议
# 判断奇偶数
int num = 10;
if(num%2==0){
System.out.println(num + "是偶数");
}else{
System.out.println(num + "是奇数");
}
2.1.3 多分支结构
语法格式
if(条件表达式1){
当条件表达式1成立的时候,执行的语句块1;
}else if(条件表达式2){
当条件表达式1不成立,
条件表达式2成立的时候,执行的语句块2;
}else if(条件表达式3){
当条件表达式1不成立,
条件表达式2也不成立,
条件表达式3成立的时候,执行的语句块3;
}
。。。
【else{
当以上所有的条件表达式都不成立,需要执行的语句块n+1;
}】
执行过程:
(1)多个条件顺序往下判断,如果上面有一个条件成立了,下面的条件就不看了
(2)多个分支也只会执行其中的一个
注意:
(1)每一个条件表达式都必须是boolean值
(2)当{}中只有一个语句时,也可以省略{},但不建议省略
(3)当多个条件是“互斥”关系(没有重叠部分),顺序可以随意;
当多个条件是“包含”关系(有重叠部分),顺序不能随意,小的在上,大的在下面
int score = 78;
if(score==100){
System.out.println("满分");
}else if(score>=80){
System.out.println("优秀");
}else if(score>=60){
System.out.println("及格");
}else{
System.out.println("不及格");
}
2.1.4 if嵌套
执行过程:
当嵌套在if中,就是当外面的if成立时,才会看里面的条件判断;
当嵌套在else中,就当外面的else满足时,才会看里面的条件判断;
3 选择结构
语法格式;
switch(表达式){
case 常量值1:
语句块1;
【break;】
case 常量值2:
语句块2;
【break;】
。。。
【default:
语句块n+1;
【break;】
】
}
执行过程:
(1)入口
①当switch(表达式)的值与case后面的某个常量值匹配,就从这个case进入;
②当switch(表达式)的值与case后面的所有常量值都不匹配,寻找default分支进入;
(2)一旦从“入口”进入switch,就会顺序往下执行,直到遇到“出口”
(3)出口
①自然出口:遇到了switch的结束}
②中断出口:遇到了break等
注意:
(1)switch(表达式)的值的类型,只能是:4种基本数据类型(byte,short,int,char),两种引用数据类型(枚举、String)
(2)case后面必须是常量值,而且不能重复
int month = 4;
switch(month){
case 3:
case 4:
case 5:
System.out.println("春季");
break;
case 6:
case 7:
case 8:
System.out.println("夏季");
break;
case 9:
case 10:
case 11:
System.out.println("秋季");
break;
case 12:
case 1:
case 2:
System.out.println("冬季");
break;
default:
System.out.println("输入有误!");
}