概述
3.1.1 流程控制结构
(1)在Java中有3种流程控制结构:顺序结构、选择结构、循环结构。
(2)顺序结构:顺序结构是指程序从上向下依次执行每条语句的结构,中间没有任何的判断和跳转。
(3)选择结构:选择结构是根据条件判断的结果来选择执行不同的代码。选择结构可以细分为 单分支结构、双分支结构和多分支结构。Java提供了if控制语句和switch语句来实现选择结构。
(4)循环结构:循环结构是根据判断条件来重复性地执行某段代码。Java提供了while语句、do-while语句、for语句来实现循环。JDK5.0新提供了增强for循环,可以更简单的方式来遍历数组和集合。
3.1.2 选择结构
1、 if控制语句
(1)单分支if语句
语法格式:
if(条件){
语句
}
执行规律:
1)对条件的结果进行判断。
2)如果条件的结果为true,执行大括号里的语句。
3)如果条件的结果为false,跳过大括号里的语句,执行if结构后面的语句。
注意事项:
1)条件的结果只能是布尔类型的值
2)如果条件后大括号中的语句只有一句,大括号可以省略不写,但建议写上。
(2)双分支if语句
语法格式:
if(条件){
语句1
}else{
语句2
}
执行规律:
1)对条件的结果进行判断。
2)如果条件的结果为true,执行语句1。
3)如果条件的结果为false,执行语句2。
注意事项:
1)else子句不能单独使用,它必须是if语句的一部分,与最近的if语句配对使用
(3)多分支if语句
语法格式:
if(条件1){
语句1
}else if(条件2){
语句2
}else if(条件3){
语句3
}
......
}else{
语句n
}
执行规律:
1)对条件1的结果进行判断。
2)如果条件1的结果为true,执行语句1;如果条件1的结果为false,则判断条件2的结果
3)如果条件2的结果为true,执行语句2;如果条件2的结果为false,则判断条件3的结果
4)如果条件3........
5)如果所有条件都为false,则执行else里的语句n。
注意事项:
1)不论多分支if语句中有多少个条件,只会执行符合条件的一个,如果没有符合条件的,则执行else子句中的语句。
2)else if语句可以有多个。
3)else语句可以省略。
4)多分支if语句的各个条件排列是有顺序的,从上到下条件越来越宽松。
5)如果if语句或else子句中要执行的语句超过一条,则必须将这些语句用大括号括起来。
2、 嵌套if控制语句
语法格式:
if(条件1){
if(条件2){
语句1
}else{
语句2
}
}else{
if(条件3){
语句3
}else{
语句4
}
}
执行规律:
1)对条件1的结果进行判断。
2)如果条件1的结果为true,再对条件2的结果进行判断。如果条件2的结果为true,则执行语句1;否则,执行语句2。
3)如果条件1的结果为false,再对条件3的结果进行判断。如果条件3的结果为true,则执行语句3;否则,执行语句4。
注意事项:
1)else子句不能单独使用,它必须是if语句的一部分,与最近的if语句配对使用
/*
* 练习03:使用if选择结构对三个整数进行排序,输出时按照从小到大的顺序输出。
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数:");
int num1 = sc.nextInt();
System.out.println("请输入第二个整数:");
int num2 = sc.nextInt();
System.out.println("请输入第三个整数:");
int num3 = sc.nextInt();
// 比较num1和num2,得出较小数,存放在num1变量中,num2中存放较大数
if (num1 > num2) {
int temp = num1;
num1 = num2;
num2 = temp;
}
// 比较num1和num3,得出较小数,存放在num1变量中,num3中存放较大数
if (num1 > num3) {
int temp = num1;
num1 = num3;
num3 = temp;
}
// 比较num2和num3,得出较小数,存放在num2变量中,num3中存放较大数
if (num2 > num3) {
int temp = num2;
num2 = num3;
num3 = temp;
}
// 输出
System.out.println("三个整数从小到大排列:" + num1 + " " + num2 + " " + num3);
sc.close();
案例:
练习09:写一个程序,输出类似09:03:12的时间格式
*
public class Practice09 {
/*
* 练习09:写一个程序,输出类似09:03:12的时间格式。
*
* 需要判断输入的数字是否符合实际情况,比如小时数就不能大于24,如果大于24就提示输入错误;
* 分钟数和秒数不能大于60,如果大于60就提示输入错误。
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入小时:");
int hour = sc.nextInt();
if (hour > 24 || hour < 0) {
System.out.println("输入错误");
}
System.out.println("请输入分钟:");
int minute = sc.nextInt();
if (minute < 0 || minute > 60) {
System.out.println("输入错误");
}
System.out.println("请输入秒:");
int second = sc.nextInt();
if (second < 0 || second > 60) {
System.out.println("输入错误");
}
//声明3个变量但是没有赋值
String newHour;
String newMinute;
String newSecond;
if (hour >= 0 && hour <= 9) {
//拼接,并对H M S 进行判断范围
newHour = "0" + hour;
} else {
newHour = "" + hour;
}
if (minute >= 0 && minute <= 9) {
newMinute = "0" + minute;
} else {
newMinute = "" + minute;
}
if (second >= 0 && second <= 9) {
newSecond = "0" + second;
} else {
newSecond = "" + second;
}
System.out.println("时间:" + newHour + ":" + newMinute + ":" + newSecond);
sc.close();
}
}
3、 switch语句
语法格式:
switch(表达式){
case 常量 1:
语句;
break;
case 常量 2:
语句;
break;
......
default:
语句;
break;
}
-->switch、case、break、default是Java关键字
-->JDK1.7后,switch后的表达式可以是int、short、byte、char、枚举类型、String类型表达式。
-->case用于与表达式进行匹配。
-->break用于终止后续语句的执行。
-->default是可选的,当其他条件都不匹配时执行default。
执行规律:
1)计算switch后表达式的值。
2)将计算结果从上至下依次与case后的常量值比较。
3)如果相等就执行该常量后的代码块,遇到break语句就结束。
4)如果与任何一个case后的常量值都不匹配,就执行default中的语句。
注意事项:
1)如果case后没有break语句,程序将继续向下执行,直到遇到break语句或switch语句结束----“case穿透”。
2)case常量值不能相同。
3)default语句可以在任意位置书写,但一般写在switch结构的末尾。也可以省略不写。
4、 switch与多重if异同点
相同点:
都是用来处理多分支条件的结构
不同点:
switch选择结构只能处理等值条件判断的情况
多重if选择结构既能处理某个变量处于某个连续区间时的情况,也能处理等值条件判断的情况
任务2:计算学生课程平均分
3.2.1 循环结构
(1)Java中的循环控制语句有while循环、do-while循环和for循环等,循环结构的特点是在给定条件成立时,反复执行某程序段,直到条件不成立为止。
(2)循环主要由4个部分组成
初始部分:设置循环的初始状态。
循环体:重复执行的代码
循环条件:判断是否继续循环的条件。
迭代部份:改变循环条件的值。如果没有迭代部分,会出现死循环。
1、 while循环
语法格式:
变量初始化
while(循环条件){
循环体
迭代部分
}
--->关键字while后的小括号中的内容是循环条件。
--->循环条件时一个布尔表达式,它的值为布尔类型true或false。
--->大括号中的语句统称为循环操作,又称循环体。
执行规律:
1)首先对循环条件的结果进行判断,如果结果为真,则执行循环语句。
2)执行完毕后继续对循环条件进行判断,如果为真,继续执行。
3)如果结果为假,则跳出循环语句,执行后面的语句。
注意事项:
1)while语句是先判断循环条件再执行循环体,如果第一次判断循环条件为假,循环将一次也不执行。
2)循环操作内要有迭代部分,不然会出现死循环。
2、 do-while循环
语法格式:
变量初始化
do{
循环体
迭代部分
}while(循环条件);
--->do-while循环以关键字do开头。
--->大括号括起来的是循环体。
--->最后的while关键字和紧随其后的小括号括起来的是循环条件。
执行规律:
1)首先执行循环体。
2)执行完毕后对循环条件的结果进行判断。
3)如果结果为真,则继续执行循环体。如果结果为假,终止循环,执行后面的语句。
注意事项:
1)do-while以分号结尾,分号非常重要,不能省略。
2)do-while语句先执行循环体再判断循环条件,所以循环体至少执行一次。
3、 for循环
语法格式:
for(表达式1;表达式2;表达式3){
循环体
}
或更直观地表示为:
for(变量初始化;循环条件;修改循环变量的值){
循环体
}
--->for循环以关键字for开头
--->大括号括起来的是循环体
--->表达式1、表达式2、表达式3分别用来实现变量初始化、判断循环条件和修改循环变量的值。
执行规律:
1)首先执行表达式1,一般是进行变量初始化操作。
2)然后执行表达式2,即对循环条件进行判断。
3)如果结果为真,则执行循环体。
4)循环语句执行完毕后执行表达式3,改变循环变量的值,再执行表达式2,如果结果为真,继续循环。
5)如果结果为假,终止循环,执行后面的语句。
注意事项:
1)无论循环多少次,表达式1只执行一次。
2)for语句是先判断循环条件再执行循环体,如果第一次判断循环条件为假,循环将一次也不执行。
4、 多重循环
(1)多重循环指一个循环语句的循环体中再包含循环语句,又称嵌套循环。
(2)循环语句内可以嵌套多层循环。
(3)不同的循环语句可以相互嵌套。
语法格式:
while(循环条件1){
循环语句1
while(循环条件2){
循环语句2
}
}
do{
循环体
do{
循环体
}while(循环条件);
}while(循环条件);
for(表达式1;表达式2;表达式3){
循环体
for(表达式1;表达式2;表达式3){
循环体
}
}
while(循环条件1){
循环语句1
for(循环条件2){
循环语句2
}
}
--->外面的循环称为外层循环。
--->里面的循环称为内层循环。
执行规律:
1)外层循环每循环一次,内层循环从头到尾完整的执行一遍。
2)外层循环控制行数,内层循环控制列数
5、 循环对比
(1)语法格式不同
(2)执行顺序不同
1)while循环:先判断循环条件,再执行循环体。如果条件不成立,退出循环。循环操作有可能一次不执行。
2)do-while循环:先执行循环体,再判断循环条件,循环体至少执行一次。
3)for循环:先执行变量初始化部分,再判断循环条件,然后执行循环体,最后进行循环变量的计算。如果条件不成立,跳出循环。循环操作有可能一次不执行。
(3)适用情况不同
1)循环次数确定的情况,通常选用for循环。
2)循环次数不确定的情况,通常选用while循环和do-while循环。
3.2.2 跳转语句
(1)Java语言支持3种类型的跳转语句:break语句、continue语句和return语句。
(2)使用跳转语句,可以把控制转移到循环甚至程序的其他部分。
1、 break语句
作用场景:break语句只会出现在switch和循环语句中,没有其他使用场合。
作用:break语句在循环中的作用是终止当前整个循环;在switch语句中的作用是终止switch。
2、 continue语句
作用场景:continue语句只会出现在循环语句中,没有其他使用场合
作用:终止本次循环操作,继续执行下一次循环操作。
3、 return语句
作用场景:方法体内
作用:return语句的作用是结束当前方法的执行并退出返回到调用该方法的语句处。
注意事项:break语句和continue语句在循环中,一般结合if控制语句一起使用。
程序调试
(1)满足暂停程序、观察变量和逐条执行语句等功能的工具和方法统称为程序调试。
(2)计算机程序中的错误或缺陷通常叫作“bug”,程序调试叫作“debug”,就是发现并解决bug的意思。
(3)程序调试的步骤:
1)设置断点
2)单步执行
3)观察变量和执行过程
1. 程序流程控制结构包括顺序结构、选择结构和循环结构,由这3种基本结构组成的程序可以解决任何复杂的问题。
2、 顺序结构是指程序从上向下依次执行每条语句的结构,中间没有任何判断和跳转。
3、 选择结构是根据条件判断的结果来选择执行不同的代码。在Java中提供了if控制语句、switch语句来实现选择结构。
4、 循环结构是指根据循环条件来重复性地执行某段代码。在Java中提供了while语句、do-while语句、for语句等来实现循环结构。
5、 跳转语句中,break语句和continue语句用来实现循环结构的跳转,而return语句用来跳出方法。
最后
以上就是哭泣红牛为你收集整理的【第3章】--选择结构和循环结构的全部内容,希望文章能够帮你解决【第3章】--选择结构和循环结构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复