Java入门
三.Java流程控制语句
1.if…else…结构
选择结构(也叫分支结构)解决了顺序结构不能判断的缺点,可以根据一个条件判断执行哪些语句块。选择结构适合于带有逻辑或关系比较等条件判断的计算。例如,判断两个数的大小等。
1.1 if语句格式1
格式:
if(关系表达式){
语句体;
}
执行流程:
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体
③如果关系表达式的值为false就不执行语句体
④继续执行后i按的语句内容
1.2 if语句格式2
格式:
if(关系表达式){
语句体1;
}else{
语句体2;
}
执行流程:
①首先计算关系表达式的值
②如果关系表达式的值为true就执行语句体1
③如果关系表达式的值为false就执行语句体2
④继续执行后面的语句内容
1.3 if语句格式3
格式:
if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;
}
……
else{
语句体n+1;
}
执行流程:
①首先计算关系表达式1的值
②如果值为true就执行语句体1;如果值为false就计算关系表达式2的值
③如果值为true就执行语句体2;如果值为false就计算关系表达式3的值
④……
⑤如果没有任何关系表达式为true,就执行语句体n+1
2.switch结构
格式:
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
……
default:
语句体n+1;
[break;]
}
格式说明:
- 表达式:取值为byte、short、int、char,JDK5以后可以是枚举,JDK7以后可以是String。
- case:后面跟的是要和表达式进行比较的值。
- break:表示中断,结束的意思,用来结束switch语句
- default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
执行流程:
①首先计算表达式的值
②依次和case后面的值进行比较,如果有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
③如果所有的case后面的值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束。
public class Demo {
public static void main(String[] args) {
System.out.println("开始");
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个星期数(1-7):");
int week = sc.nextInt();
switch (week){
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("你输入的星期数有误!");
break;
}
System.out.println("结束");
}
}
程序运行结果:
3.for结构
3.1 循环结构
循环结构的组成:
- 初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始的时候是什么样。
- 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去。
- 循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情。
- 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去。
循环结构对应的语法
- 初始化语句:这里可以是一条或者多条语句,这些语句可以完成一些初始化操作。
- 条件判断语句:这里使用一个结果值为boolean类型的表达式,这个表达式能决定是否执行循环体。
- 循环体语句:这里可以是任意语句,这些语句将反复执行。
- 条件控制语句:这里通常是使用一条语句来改变变量的值,从而达到控制循环是否继续向下执行的效果。
3.2 for循环语句格式
格式:
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
执行流程:
①执行初始化语句
②执行条件判断语句,看其结果是true还是false。如果是true继续执行,如果是false循环结束
③执行循环体语句
④执行条件控制语句
⑤回到②继续
4.while结构
4.1 while循环语句
基本格式:
while(条件判断语句){
循环体语句;
}
完整格式:
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
执行流程:
①执行初始化语句
②执行条件判断语句,看起结果是true还是false。如果是false,循环结束;如果是true,继续执行。
③执行循环体语句
④执行条件控制语句
⑤回到②继续
4.2 do…while循环语句
基本格式:
do{
循环体语句;
}while(条件判断语句);
完整格式:
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
执行流程:
①执行初始化语句
②执行循环体语句
③执行条件控制语句
④执行条件判断语句,看其结果是true还是false。如果是false,循环结束;如果是true,继续执行。
⑤回到②继续
5.三种循环区别
三种循环的区别
- for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行)
- do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断)
for和while的区别
- 条件控制语句所控制的自增变量,应为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了
- 条件控制语句所控制的自增变量,对于while循环体来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
死循环格式:
for(;;){ }
while(true){ }
do{ }while(true);
while的死循环格式是最常用的。
6.跳转控制语句
6.1 跳转控制语句概述
- continue:用在循环中,基于条件控制,跳过某次循环体内容的执行,继续下一次的执行。
- continue 语句只能用在 while 语句、for 语句或者 foreach 语句的循环体之中,在这之外的任何地方使用它都会引起语法错误。
- break:用在循环中,继续条件控制,终止循环体内容的执行,也就是说结束当前的整个循环。
7.循环嵌套
语句结构
- 顺序语句:以分号结尾,表示一句话的结束。
- 分支语句:一对大括号表示if的整体结构,整体描述一个完整的if语句;一对大括号表示switch的整体结构,整体描述一个完整的switch语句。
- 循环语句:一对大括号表示for的整体结构,整体描述一个完整的for语句;一对大括号表示while的整体结构,整体描述一个完整的while语句;do…while以分号结尾,整体描述一个完整的do…while语句。
任何语句对外都可以看成是一句话,一句代码。在分支语句中包含分支语句成为分支嵌套。循环语句中包含循环语句成为循环嵌套。
public static void main(String[] args) {
System.out.println("乘法口诀表:");
// 外层循环
for (int i = 1; i <= 9; i++) {
// 内层循环
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + j * i + "\t");
}
System.out.println();
}
}
程序运行结果: