1. 顺序结构
顺序结构是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。
总的来说:程序按照从上到下的顺序执行。
Java顺序结构示例代码:
public class Test{
public static void main(String[] args) {
System.out.println(1);
System.out.println(2);
System.out.println(3);
}
}
2. 分支结构
条件语句可根据不同的条件执行不同的语句。包括if条件语句与switch多分支语句。这是学习Java的一个基础与重点。
2.1 if条件语句
使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的“布尔表达式”,如果该表达式返回true,则执行其后的语句;若为false,则不执行if后的语句。可分为简单的if条件语句、if···else语句和if···else if多分支语句。
int a = 100;
if(a == 100) {
System.out.println(a);
}
如上方代码,{}之间为复合语句,if为条件语句,翻译过来就是如果a等于100,则输出a的值,否则不执行。
如果if后只有一条语句,比如上述代码只有一条输出,可以不加{},但为了代码的可读性,以及防止代码过多出现不必要的错误,建议所有的if、else后都加上相应的{}。
2.2 if···else语句
if···else语句是条件语句中最常用的一种形式,它会针对某种条件有选择的作出处理。通常表现为“如果满足某种条件,就进行某种处理,否则就进行另一种处理”。
if后的()内的表达式必须是boolean型的。如果为true,则执行if后的复合语句;如果为false,则执行else后的复合语句。
如:
public class Getifelse {
public static void main(String[] args) {
int math = 80; // 声明,数学成绩为80(及格)
int english = 50; // 声明,英语成绩为50(不及格)
if(math >= 60) { // if判断语句判断math是否大于等于60
System.out.println("math has passed");
} else { // if条件不成立
System.out.println("math has not passed");
}
if(english >= 60) { // if判断语句判断english是否大于等于60
System.out.println("english has passed");
} else { // if条件不成立
System.out.println("english has not passed");
}
}
}
2.3 if···else if多分支语句
if···else if多分支语句用于针对某一事件的多种情况进行处理。通常表现为“如果满足某种条件”,就进行某种处理,否则,如果满足另一种条件,则进行另一种处理。
public class GetTerm {
public static void main(String[] args) {
int x = 40;
if(x > 60) {
System.out.println("x的值大于60");
} else if (x > 30) {
System.out.println("x的值大于30但小于60");
} else if (x > 0) {
System.out.println("x的值大于0但小于30");
} else {
System.out.println("x的值小于等于0");
}
}
}
2.4 switch分支语句
switch语句是一种比较简单明了的多选一的选择,在Java语言中,可以用switch语句将动作组织起来进行多选一。语法格式如下:
switch(表达式)
{
case 常量值1:
语句块1
[break;]
...
case 常量值n:
语句块2
[break;]
default:
语句块 n+1;
[break;]
}
switch语句中表达式的值必须是常量(整型或字符型),常量值1~n必须也是整型或字符型。
3. 循环结构
什么是循环结构?
在满足循环条件的情况下,反复执行某一段代码的结构称为循环结构,被重复执行的代码叫做循环体,循环结构需要一个条件结束循环,不然就会形成死循环。
3.1 for 循环
for(初始化表达语句;判断条件语句;控制条件语句){
循环体语句;
}
-
执行流程
- 进行初始化表达语句
- 执行判断条件语句,如果为true,继续执行;如果为false,跳出循环,循环结束
- 为true执行循环体语句
- 执行控制条件语句
- 执行判断条件语句,为true继续执行循环体语句,为false跳出循环,循环结束
- 为true执行循环体语句
- 执行条件判断语句
- ……
-
注意:初始化表达语句只执行一次
3.2 while循环
初始化条件语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
-
执行流程
- 执行初始化条件语句
- 执行条件判断语句,若为true,继续执行循环体语句;若为false,结束循环
- 执行循环体语句
- 执行控制循环语句
- 执行条件判断语句,若为true,继续执行循环语句;若为false,结束循环
- ……
3.3 do while循环
初始化条件语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
-
执行流程
- 执行初始化条件语句
- 执行循环体语句
- 执行控制条件语句
- 执行判断条件语句,若为true,继续循环;若为false,跳出循环
- 若为true,执行循环体语句
- 执行控制条件语句
- ……
3.4 for、while、do while 三种循环的区别
-
do while 循环至少执行一次,而 for 和 while 可以一次也不执行
-
如果已知循环次数,用for循环方便;如果只知道循环结束条件,用while循环
-
如果想在循环过后继续使用控制条件变量,用while循环,否则用for循环
-
建议优先使用for循环,再是while循环,最后是do while循环
-
注意:一定要注意控制循环的变量,不然容易造成死循环
4. 控制跳转语句
控制跳转语句分类
- break:中断整个循环
- continue:跳过当次循环
- return:退出当前方法
4.1 break语句
- 作用:退出循环
4.2 continue语句
- 作用:跳过当次循环,继续下一次循环
4.3 return语句
- 作用:退出当前方法,跳转到上层调用的方法处