章节目录
引言:
Java 虽然是面向对象的语言,但在局部的语句块内部仍然需要借助结构化的基本流程结构(顺序结构、分支结构、循环结构)来组织语句,完成相应的逻辑功能。
三种基本流程控制结构示意图分别如下图所示:
1. 顺序结构
代码中最常见的结构,按顺序执行的语句叫做顺序语句。
//顺序结构
public static void main(String[] args) {
一天中按时做的事情 : 顺序结构
System.out.println("吃早饭"); // 1
System.out.println("吃中饭"); // 2
System.out.println("吃晚饭"); // 3
}
2. 分支语句
2.1 if 语句
if(返回boolean值的条件表达式){
语句组;
}
案例:
Scanner sc = new Scanner(System.in);
int age = sc.nextInt();
if(age<10){
System.out.println("发你一个帮帮糖");
}
System.out.println("请进入游乐场");
2.2 if-else 语句
if(条件表达式){
语句组1
}else {
语句组2
}
案例:
Scanner sc = new Scanner(System.in);
float height = sc.nextFloat();
if(height<1.3f){
System.out.println("请购买儿童票");
}else {
System.out.println("请购买成人票");
}
System.out.println("请进场");
2.3 if-else if … -else语句
案例:百分制的评分:90-100 分以上优秀;80-90 分以上良好;60-80 分以上及格;其它的淘汰。
Scanner sc = new Scanner(System.in);
int score = sc.nextInt();
if(score>90){
System.out.println("优秀");
}else if (score>80) {
System.out.println("良好");
}else if (score>60) {
System.out.println("及格");
}else {
System.out.println("淘汰");
}
2.4 Switch 语句
switch 语句(又称开关语句)是和 case 语句一起使用的,其功能是根据某个表达式的值在多个 case 引导的多个分支语句中选择一个来执行。它的一般格式如下:
switch (key) {
case value:
语句块1;
break;
……
default:
break;
}
案例
int i = 3;
switch (i) {
case 1:
System.out.println(1);
break;
case 2:
System.out.println(2);
break;
default:
System.out.println("default");
break;
}
PS:
• default 语句是可选的,它接受除上面接受值的其他值,通俗的讲,就是谁也不要的都归它。
• case 后面可以跟多个语句,这些语句可以不用大括号括起来。
• switch 后面括号中表达式的值必须是符合 byte,char,short,int 类型的常量表达式,jdk1.7 以后可以使用String,而不能用浮点类型或 long 类型。
• 一个 switch 语句可以代替多个 if—else 语句组成的分支结构,而 switch 语句从思路上显得更清晰。
3. 循环语句
3.1 while 循环
语法:
while (条件表达式) {
循环体语句; }
在循环刚开始时,会计算一次“条件表达式”的值。当条件为假时,将不执行循环体,直接跳转到循环体外,执行循环体外的后续语句;当条件为真时,便执行循环体。每执行完一次循环体,都会重新计算一次条件表达式,当条件为真时,便继续执行循环体,直到条件为假才结束循环。
案例:循环输出 1-100;
int i =1;
while(i<=100){
System.out.println(i);
i++;
}
3.2 do while 循环
语法:
do {
循环体语句;
} while (条件表达式);
do-while 循环与 while 循环的不同在于:它先执行循环中的语句,然后再判断条件是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次循环语句。注意:while()后一定要加“;”
案例:循环输出 1~100;
int i =1;
do {
System.out.println(i);
i++;
} while (i<=100);
PS:while 循环和 do-while 循环的区别
while 循环只有当条件表达式为 true 的时候才会进入循环体,do-while 循环首先执行一次循环体中的内容,无论条件表达式是否为 true;
3.3 for 循环
语法:
for (表达式1;表达式2;表达式3) {
循环体语句;
}
表达式 1 一般是一个赋值语句,它用来给循环控制变量赋初值;表达式 2 是一个布尔类型的表达式,它决定什么时候退出循环;表达式 3 一般用来修改循环增量表达式。这三个部分之间用“;”分开。
案例:循环输出 1-100;
for (int i = 1; i <= 100; i++) {
System.out.println(i);
}
练习:请问 i 输出是多少?
int i = 1;
for (; i <= 100; i++) {
}
System.out.println(i);
3.4 增强 for 循环
这是JDK5.0 之后的新特性
可以用来处理数组中的每个元素(其它类型的集合也可以),而不需要指定下标;
for (类型 变量 : 集合) {
}
类型:值集合中保存的数据的数据类型;
变量:表示集合中的每一个元素;
集合:需要处理的集合对象;
3.5. 跳转语句
break、continue
在 Java 语言中,可用 break 和 continue 控制循环的流程。其中,break 用于强行退出循环,不执行循环中剩余的语句。而 continue 则停止执行当前的循环,开始新的循环。
3.6 递归
函数自己调用自己
案例:1+2+3….+100;
public static int sum(int num){
return num==1?1:num+sum(num-1);
}
4. 注释
java中的注释分为单行注释和多行注释两种
4.1 单行注释
//这是单行注释
//前面用两个斜杠
4.2多行注释
/*
这是多行注释
可以注释一整段代码
一般放程序开头
说明程序的作者
和创作时间
*/
芙蓉白面,须知带肉骷髅;美貌红妆,不过蒙衣漏厕。--《欲海回狂》