程序流程控制语句.docx
- 文档编号:18282120
- 上传时间:2023-08-15
- 格式:DOCX
- 页数:16
- 大小:53.19KB
程序流程控制语句.docx
《程序流程控制语句.docx》由会员分享,可在线阅读,更多相关《程序流程控制语句.docx(16页珍藏版)》请在冰点文库上搜索。
程序流程控制语句
程序流程控制语句:
选择语句
www.xue-网站制作 2011年9月1日
Java语言中的程序流程控制语句有三种:
顺序结构、选择结构和循环结构。
其中顺序结构最简单,程序依次执行各条语句。
Java的每条语句一般以分号(“;”)作为结束标志。
所以本章重点讲解选择结构和循环结构。
1、选择语句
在程序设计时,经常需要使用选择结构在程序中完成逻辑判断和选择功能,这就需要使用到选择语句。
Java中的选择语句包括if语句、if-else语句和switch语句。
选择语句用来控制选择结构,对选择条件进行判断,并根据判断结果选择要执行的程序语句,改变程序执行流程。
2、if选择语句
在实际生活中,经常会需要做一些逻辑判断,并根据逻辑判断结果做出选择。
例如,当一个男孩子向一个非常理智的女孩子求婚时,这个女孩子思考的逻辑可能是这样的:
如果你有100万
那么,我就嫁给你!
在这里,女孩子嫁给男孩子这个过程的实施,必须以“你有一百万”为前提。
只有逻辑判断“你有一百万”这一前提条件为真时,“那么,我就嫁给你!
”这个行为才能得到执行。
在生活当中,类似这样的情形是很常见的。
相应地,在Java程序设计语言中,也有相应的条件语句来完成类似的逻辑判断和有选择地执行这样的功能,这就是if语句。
if语句的语法格式如下:
if(条件表达式)
语句
或者
if(条件表达式){
一条或多条语句
}
if语句执行的过程如下:
1.对if后面括号里的条件表达式进行判断。
2.如果条件表达式的值为true,就执行表达式后面的语句或后面大括号里的多条语句。
3.如果条件表达式的值为false,则跳过if语句,执行下一条语句。
if语句是只有一个选择的语句结构,所以又叫单分支选择结构,其流程图如下图所示:
需要注意的是,在条件表达式的右括号后面,如果只有一条执行语句的话,那么可以跟一对大括号,也可以不跟大括号。
如果有多条语句需要一起执行,则必须用大括号把多条语句括起来,形成语句块。
建议不论条件成立时后面要执行多少条语句,一律用大括号括起来。
请看下面的代码:
inta=2,b=3;
if(a>b)
System.out.println(“这句话能输出!
”);
System.out.println(“这句话也能输出!
”); //这个输出语句并不是条件表达式后的执行语句
因为没有用大括号将条件表达式a>b后的两个输出语句括起来,所以条件表达式成立与否,只影响到其后第一个输出语句。
这段代码的输出结果为:
“这句话也能输出!
”
用if语句表示女孩子考虑求婚问题,可以以自然语法写成如下形式:
if(男朋友有100万){
我愿意嫁给你!
}
当然,在程序中,需要使用Java语言的语法来表示,如下所示:
floatboyFriendMoney; //变量boyFriendMoney代表男朋友的存款
...
if(boyFriendMoney>100){ //如果男朋友的存款多于100万
System.out.println(“我愿意嫁给你!
”); //那么,同意嫁给他
}
3、if-else双分支选择语句
有时候,需要根据逻辑判断结果分别做出选择。
例如,在上节的例子中,当一个男孩子向一个女孩子求婚时,女孩子思考的逻辑也可能是这样的:
如果你有100万
那么,我就嫁给你!
否则
我就拒绝嫁给你。
在这里,女孩子根据对方是否有一百万,有两个选择:
当逻辑判断“你有一百万”这一前提条件为真时,执行“那么,我就嫁给你!
”这个行为;否则,如果逻辑判断不为真,就执行“我就拒绝嫁给你”。
在生活当中,类似这样的情形是很常见的。
相应地,在Java程序设计语言中,也有相应的条件语句来完成类似的逻辑判断和有选择地执行这样的功能,这就是if-else语句。
if-else语句的语法格式如下:
if(条件表达式)
语句1
else
语句2
或者
if(条件表达式){
语句块1
}else{
语句块2
}
if-else语句执行的过程如下:
1.对if后面括号里的条件表达式进行判断。
2.如果条件表达式的值为true,就执行语句1或语句块1。
3.如果条件表达式的值为false,就执行语句2或语句块2。
if-else语句又称为双分支选择结构,其流程图如下图所示:
【例】编写一个程序,求两个数中比较大的值,并输出。
编写程序的步骤如下。
(1)打开记事本,编写程序代码如下,并保存为MaxValueDemo.java。
MaxValueDemo.javapublicclassMaxValueDemo{
publicstaticvoidmain(String[]args){
inta=23,b=36,max; //声明三个整型变量
if(a>b){ //如果a大于b
max=a; //将较大值的a赋给变量max
}else{ //否则,如果a不大于b
max=b; //将b的值赋给变量max
}
System.out.println(“最大值是:
”+max); //输出变量max的值,即输出最大值
}
}
(2)使用如下命令编译和运行MaxValueDemo.java源程序。
javacMaxValueDemo.java
javaMaxValueDemo
(3)程序输出结果如下:
最大值是:
36
在程序MaxValueDemo中,定义三个整型变量a、b和max。
对变量a和b的值进行判断,并将其中较大的值赋给变量max,最后输出max的值。
4、if-else-if多分支选择语句
除了单分支结构的if语句和双分支结构的if-else语句之外,还有一种常用的选择结构是多分支结构,使用if-else-if语句实现。
if-else-if语句的语法格式如下:
if(条件表达式1){ //如果条件表达式1成立(结果为true)
语句块1 //就执行语句块1中的代码
}elseif(条件表达式2){ //否则,如果条件表达式2成立
语句块2 //就执行语句块2中的代码
}
… //对其他条件进行判断
elseif(条件表达式n-1){ //如果条件表达式n-1成立
语句块n-1 //就执行语句块n-1中的代码
}else{ //如果以上所有的条件都不成立
语句块n //就执行语句块n
}
if-else语句执行的过程如下:
1.对if后面括号里的条件表达式进行判断。
2.如果条件表达式的值为true,就执行语句块1。
3.否则,对条件表达式2进行判断。
如果条件表达式的值为true,就执行语句块2。
4.否则,依此类推。
5.如果所有条件表达式的值都为false,最后执行语句块n。
if-else-if语句依次对if后面的条件表达式进行判断,遇到第一个值为真的表达式时,就执行其后面的语句块,然后整个if-else-if语句就结束了,不再对后面的条件表达式进行判断和执行了。
理论上,可以有无限多个elseif子句。
【例】编写一个程序,根据学生的成绩,判断其属于哪个档次,并输出。
编写程序的步骤如下。
(1)打开记事本,编写程序代码如下,并保存为ScoreDemo.java。
ScoreDemo.javapublicclassScoreDemo{
publicstaticvoidmain(String[]args){
intscore=85; //定义代表学生成绩的变量score,并赋初值
if(score>=90){ //如果成绩大于等于90分
System.out.println("您的成绩优秀!
”); //执行这个语句块,并结束本if-else-if语句
}elseif(score>=80){ //满足这个条件表达式
System.out.println(“您的成绩良好”); //执行这个语句块,并结束本if-else-if语句
}elseif(score>=70){ //如果成绩大于等于70分
System.out.println(“您的成绩中等”); //执行这个语句块,并结束本if-else-if语句
}elseif(score>=60){ //如果成绩大于等于60分
System.out.println(“您的成绩及格”); //执行这个语句块,并结束本if-else-if语句
}else{ //如果以上条件都不成立,即成绩小于60分
System.out.println(“您的成绩不及格”);
} //结束if语句是直接转到这里,执行if后面的语句
}
}
(2)使用如下命令编译和运行ScoreDemo.java源程序。
javacScoreDemo.java
javaScoreDemo
(3)程序输出结果如下。
您的成绩良好
在本例中,当程序执行到score>=80这个表达式时,计算其结果为true,执行其后的语句块,输出“您的成绩良好”,并结束if-else-if语句,转到该语句最后一个大括号后面,执行其后面的语句。
if-else-if语句又称为多分支选择结构,其流程图如下图所示:
需要注意的是,最后的else语句可以省略,那么当所有的条件表达式都不成立时,什么也不执行。
【例】编写一个程序,求三个整数中的最大值,并输出。
编写程序的步骤如下。
(1)打开记事本,编写程序代码如下,并保存为MaxValueDemo2.java。
MaxValueDemo2.javapublicclassMaxValueDemo2{
publicstaticvoidmain(String[]args){
inta=23,b=36,c=25,max; //声明4个整型变量,其中a,b,c赋初值
if(a>c){ //如果a比c大
max=a; //那么把a赋给max变量
}elseif(b>c){ //如果a比c小,那么b与c进行比较。
如果b大于c
max=b; //那么最大值为b
}else //否则,a和b都不大于c
max=c; //那么最大值为c
System.out.println(“最大值是:
”+max); //输出最大值max的值
}
}
(2)使用如下命令编译和运行MaxValueDemo2.java源程序。
javacMaxValueDemo2.java
javaMaxValueDemo2
(3)程序输出结果如下。
最大值是:
36
在程序MaxValueDemo2中,对三个整数a、b和c进行比较。
实际上,这个程序逻辑并不完整,例如,将变量a的值改为26,再编译并运行此程序,会发现输出的最大值为26,显然是不正确的。
这是因为没有考虑a大于c但小于b的情况。
这时,需要使用嵌套的if语句。
5、选择语句的嵌套
if语句里面可以再嵌套if语句。
所谓嵌套,就是在if语句中又包含一个或多个if语句。
这样的语句一般用在比较复杂的分支语句中。
其语法格式如下:
if(条件表达式1){
if(条件表达式2){
语句块1
}else{
语句块2
}
}else{
if(条件表达式3){
语句块3
}else{
语句块4
}
}
【例】使用嵌套的if语句编写一个程序,根据学生的成绩,判断其属于哪个档次,并输出。
编写程序的步骤如下。
(1)打开记事本,编写程序代码如下,并保存为ScoreDemo2.java。
ScoreDemo2.javapublicclassScoreDemo2{
publicstaticvoidmain(String[]args){
intscore=85; //声明初始整型变量score,并赋初值
if(score>=60){ //如果成绩大于等于60,再进一步判断
if(score>=70){ //如果成绩大于等于70,再进一步判断
if(score>=80){ //如果成绩大于等于80,再进一步判断
if(score>=90) //如果成绩大于等于90,输出相关信息
System.out.println("您的成绩优秀!
”);
else //如果成绩在80~90之间,输出相关信息
System.out.println(“您的成绩中等”);
}else{ //如果成绩在70~80之间,输出相关信息
System.out.println(“您的成绩良好”);
}
}else{ //如果成绩在60~70之间,输出相关信息
System.out.println(“您的成绩及格”);
}
}else{ //如果成绩小于60
System.out.println(“您的成绩不及格”);
}
}
}
(2)使用如下命令编译和运行ScoreDemo2.java源程序。
javacScoreDemo2.java
javaScoreDemo2
(3)程序输出结果如下。
您的成绩良好
在本例中,当程序执行到score>=80这个表达式时,计算其结果为true,执行其后的语句块,输出“您的成绩良好”,并结束if-else-if语句,转到该语句最后一个大括号后面,执行其后面的语句。
if-else-if语句又称为多分支选择结构,其流程图如下图所示:
同样求三个整数中的最大值,也可以使用嵌套的if-else语句。
请看下面的示例。
【例】使用嵌套的if-else语句编写一个程序,求三个整数中的最大值,并输出。
编写程序的步骤如下。
(1)打开记事本,编写程序代码如下,并保存为MaxValueDemo3.java。
MaxValueDemo3.javapublicclassMaxValueDemo3{
publicstaticvoidmain(String[]args){
inta=23,b=36,c=25,max; //声明三个整型变量
if(a>c){ //如果a>c,最大值在a和b中间
if(a>b)
max=a;
else
max=b;
}else{ //如果a if(b>c) max=b; else max=c; } System.out.println(“最大值是: ”+max); } } (2)使用如下命令编译和运行MaxValueDemo3.java源程序。 javacMaxValueDemo3.java javaMaxValueDemo3 (3)程序输出结果如下。 最大值是: 36 注意,else总是和离它最近的if进行匹配,所以在if语句嵌套时,尽可能使用大括号进行划分逻辑关系,避免出现问题。 例如,上例也可以这样来编码: publicclassTest{ publicstaticvoidmain(String[]args){ intscore=85; //声明整型变量,并赋初值 if(score>=60){ //如果变量score(成绩)的值大于等于60,再做进一步的判断 if(score>89) //如果变量score(成绩)的值大于89,输出相关的信息 System.out.println(“恭喜您! 您的得分是优秀! ”); }else //如果成绩小于60,输出相关信息 System.out.println(“很抱歉,您考试不及格! ”); } } 上面代码中第一个if语句后面的大括号是必须的,这时什么也不输出。 如果去掉第一个if语句后面的大括号,那么,else子句将与它最近的那个if语句匹配,这时代码如下所示: publicclassTest{ pub
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 流程 控制 语句