文章目录
一、顺序控制
1.介绍
程序从上到下逐行地执行,中间没有任何判断和跳转。
注意:Java中定义变量时使用合法的前向引用(即先定义再使用)。
int num1 = 12;
int num2 = num1 + 2;//正确
int num2 = num1 + 2;
int num1 = 12;//错误
二、分支控制if-else
1.介绍
让程序有选择地执行。
2.单分支
① 基本语法
if(条件表达式) {
执行代码块;(可以有多条语句)
}
② 说明
- 当条件表达式为true时,就会执行{ }的代码。如果为false,就不执行。
- 特别说明,如果{ }中只有一条语句,则可以不用{ },但建议写上。
③ 单分支流程图
3.双分支
① 基本语法
if(条件表达式) {
执行代码块1;(可以有多条语句)
}
else {
执行代码块2;(可以有多条语句)
}
② 说明
- 当条件表达式为true时,就会执行代码块1。如果为false,就执行代码块2。
- 特别说明,如果{ }中只有一条语句,则可以不用{ },但建议写上。
③ 双分支流程图
4.多分支
① 基本语法
if(条件表达式1) {
执行代码块1;(可以有多条语句)
}
else if(条件表达式2) {
执行代码块2;(可以有多条语句)
}
....//中间可以写多个else if语句
else {
执行代码块n;(可以有多条语句)
}
② 特别说明
- 多分支可以没有else,如果所有的条件表达式都不成立,则一个执行入口都没有;
- 如果有else,如果所有的条件表达式都不成立,则默认执行else代码块,即else是整个多分支最后一个判断入口。
- 多分支只要找到一个执行入口,执行后就结束,不再接着判断。
③ 流程图
5.嵌套分支
①介绍
在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支,外面的分支结构称为外层分支,建议不要超过3层。(可读性不好)
② 基本语法
if() {
if() {
//if-else...
}
else {
//if-else
}
}
5.switch分支结构
① 基本语法
switch(表达式){
case 常量1:
语句块1;
break;
case 常量2:
语句块2;
break;
...
case 常量n:
语句块n;
break;
deault:
default语句块;
break;//这个有没有无所谓了,因为是最后了,都会退出switch。
}
② 解读
- switch关键字,表示switch分支;
- 表达式对于一个值;
- case 常量1:当表达式的值等于常量1,就执行 语句块1;
- break:表示推出switch,若没有break,则忽视下面的case,一直执行下面的语句块;
- 如果和 case 常量1 匹配,就执行语句块1,如果没有匹配,就继续匹配 case 常量2;
- 如果一个都没有匹配上,就执行default语句块。
③ 注意事项及细节
- 表达式数据类型,应和 case 后的常量类型一致,或者是可以自动转为可以相互比较的类型,比如输入的是字符,而变量是 int 。
- switch(表达式)中表达式的返回值必须是:(byte、short、int、char、enum[枚举]、String)。
- case子句中的值必须是常量,而不能是变量。
- default子句是可选的,当没有匹配的case时,执行default。
- break语句是用来在执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾,除非遇到break。
④ switch 和 if 的比较
- 如果判断的具体数值不多,而且符合byte、short、int、char、enum[枚举]、String这6种类型。虽然两个语句都可以使用,建议使用swtich语句。
- 其他情况:对区间判断,对结果为boolean类型判断,使用if,if的适用范围更广。
三、for循环控制
1.基本语法
for(循环变量初始化;循环条件;循环变量迭代) {
循环操作(可以多条语句);
}
2.说明
-
for关键字,表示循环控制;
-
for有四要素:
- 循环变量初始化
- 循环条件
- 循环操作
- 循环变量迭代;
-
循环操作,这里可以有很多条语句,也就是我们要循环执行的代码;
-
如果循环操作(语句)只有一条语句,可以省略{},建议不要省略。
3.细节
- 循环条件是返回一个布尔值的表达式;
- for(;循环判断条件;)中的初始化和变量迭代可以写道其它地方,但是两边的分号不能省略;
- 循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开。
四、while循环控制
1.基本语句
循环变量初始化;
while(循环条件) {
循环体(语句);
循环变量迭代;
}
2.注意事项和细节
- 循环条件是返回一个布尔值的表达式;
- while循环是先判断再执行语句。
五、do-while循环控制
1.基本语法
循环变量初始化;
do {
循环体(语句);
循环变量迭代;
} while(循环条件);
2.说明
- do while 是关键字;
- 也有循环四要素,只是位置不同;
- 先执行,再判断,就是说至少执行一次;
- 最后有一个分号。
3.注意事项和细节说明
- 循环条件是返回一个布尔值的表达式;
- do…while循环是先执行,再判断,因此至少执行一次。
六、多重循环控制
- 将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for,while,do…while均可以作为外层循环和内层循环。(建议最多两层)
- 实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可以结束外层的当次循环,开始下一次的循环。
七、空心金字塔
//输出空心金字塔:
import java.util.Scanner;
public class PracticeLoop03{
public static void main(String[] args) {
Scanner myscanner = new Scanner(System.in);
System.out.println("请输入行数:");
int num = myscanner.nextInt();
for (int i = 1;i <= num;i++) {
for (int k = 1; k <= num - i;k++) {
System.out.print(" ");
}
for (int j =1;j <= 2 * i - 1;j++) {
if (j == 1 || j == 2 * i -1 || i == num) {
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println("");
}
}
}
八、跳转控制语句-break
1.基本介绍
break语句用于终止某个语句块的执行,一般使用在switch或者循环[for,while,do-while]中。
2.基本语法
{ ...
break;
...
}
3.注意事项和细节说明
-
break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块。
-
标签的基本使用
label1:{ ...... label2: { ...... label3: { ...... break; ...... } } } (1)break语句可以指定退出哪层; (2)label1是标签,名字由程序员指定; (3)break后指定到哪个label就退出到哪里; (4)实际开发中,尽量不使用标签; (5)如果没有指定break,默认退出最近的循环体。
九、跳转控制语句-continue
1.基本介绍
① continue语句用于结束本次循环,据徐执行下一次循环;
② continue语句出现在多层嵌套的循环与语句体中时,可以通过标签指明要跳过的是哪一层循环,和break的使用规则一样。
2.基本语法
{ ......
continue;
......
}
十、跳转控制语句-return
1.介绍
return使用在方法,表示跳出所在的方法,在讲解方法的时候,会详细的介绍。如果return写在main方法,退出程序。
2.知识点
① 输出0.0 ~ 1.0之间的随机数
Math.random()
② 输出1~100之间的随机数
(int)(Math.random() * 100 ) + 1
③ 判断字符串内容是否相等
String name = "贾宝玉";
System.out.println(name.equals("林黛玉"));
System.out.println("林黛玉".equals(name));//两种写法都可,更推荐该方法,避免空指针。
结果输出false。