流程控制语句(if,switch,for,while,do-while)
2016-06-12 13:41
573 查看
在Java 里,涉及的关键字包括if-else、while、do-while、for以及一个名为 switch的选择语句。
所有条件语句都利用条件表达式的真或假来决定执行流程。
1. if-else
if-else 语句或许是控制程序流程最基本的形式。其中的 else 是可选的,所以可按下述两种形式来使用if:
if(布尔表达式) {
语句1
}
或者
if(布尔表达式) {
语句1
} else {
语句2
}
或者
if (布尔表达式1) {
语句1
} else if (布尔表达式2) {
语句2
} else if (布尔表达式3) {
语句3
} else {
语句4
}
可以嵌套多个else if
条件必须产生一个布尔结果。“语句”要么是用分号结尾的一个简单语句,要么是一个复合语句——封闭在
括号内的一组简单语句。需要注意的是,语句最好用标准写法花括号括起来,易于代码的阅读。
num1小于num2
2.while
用于反复循环,语法结构:
while (布尔表达式) {
语句
}
eg:
循环当前NUM值:10
循环当前NUM值:9
循环当前NUM值:8
循环当前NUM值:7
循环当前NUM值:6
循环当前NUM值:5
循环当前NUM值:4
循环当前NUM值:3
循环当前NUM值:2
循环当前NUM值:1
3.do-while
语法结构:
do {
语句
} while(布尔表达式);
先执行语句,再判断while布尔条件,满足继续执行语句,否则跳出do-while,与while相比在于do-while无论是否满足条件,
上来就先执行do里的语句,然后再谈条件,颇有点黑社会气质,做事比较刚猛。
eg:
循环当前的NUM:10
循环当前的NUM:9
循环当前的NUM:8
循环当前的NUM:7
循环当前的NUM:6
循环当前的NUM:5
循环当前的NUM:4
循环当前的NUM:3
循环当前的NUM:2
循环当前的NUM:1
========================
无论条件是否满足,先执行改语句;再去判断numTest>10是否成立,成立再执行该语句,否则跳出do-while
4.for
for循环在第一次反复之前要进行初始化。随后,它会进行条件测试,而且在每一次反复的时候,进行某种
形式的“步进”(Stepping)。语法结构如下:
for(初始表达式; 布尔表达式; 步进) {
语句
}
eg:
当前循环的NUM:1
当前循环的NUM:2
当前循环的NUM:3
当前循环的NUM:4
当前循环的NUM:5
当前循环的NUM:6
当前循环的NUM:7
当前循环的NUM:8
当前循环的NUM:9
当前循环的NUM:10
5.switch
“开关”(Switch)有时也被划分为一种“选择语句”。根据一个整数表达式的值,switch语句可从一系列
代码选出一段执行。它的格式如下:
switch(整数选择因子) {
case 整数值1 : 语句; break;
case 整数值2 : 语句; break;
case 整数值3 : 语句; break;
case 整数值4 : 语句; break;
case 整数值5 : 语句; break;
//..
default:语句;
}
其中,“整数选择因子”是一个特殊的表达式,能产生整数值。switch 能将整数选择因子的结果与每个整数
值比较。若发现相符的,就执行对应的语句(简单或复合语句)。若没有发现相符的,就执行default语句。
eg:
当前选中的NUM值:2
注意:在java 7中,对switch表达式进行了放宽处理,可以使用字符串判断。
eg:
所有条件语句都利用条件表达式的真或假来决定执行流程。
1. if-else
if-else 语句或许是控制程序流程最基本的形式。其中的 else 是可选的,所以可按下述两种形式来使用if:
if(布尔表达式) {
语句1
}
或者
if(布尔表达式) {
语句1
} else {
语句2
}
或者
if (布尔表达式1) {
语句1
} else if (布尔表达式2) {
语句2
} else if (布尔表达式3) {
语句3
} else {
语句4
}
可以嵌套多个else if
条件必须产生一个布尔结果。“语句”要么是用分号结尾的一个简单语句,要么是一个复合语句——封闭在
括号内的一组简单语句。需要注意的是,语句最好用标准写法花括号括起来,易于代码的阅读。
package com.lanhuigu.base; public class IfElseTest { public static void main(String[] args) { int num1 = 1; int num2 = 2; if (num1>num2) { System.out.println("num1大于num2"); } else { System.out.println("num1小于num2"); } } }执行结果:
num1小于num2
2.while
用于反复循环,语法结构:
while (布尔表达式) {
语句
}
eg:
package com.lanhuigu.base; public class WhileTest { public static void main(String[] args) { int num = 10; while (num > 0) { System.out.println("循环当前NUM值:"+num); --num;// 每循环一次num自动减1,生成新的num,进行num>0进行比较,满足继续执行,否则跳出while } } }执行结果:
循环当前NUM值:10
循环当前NUM值:9
循环当前NUM值:8
循环当前NUM值:7
循环当前NUM值:6
循环当前NUM值:5
循环当前NUM值:4
循环当前NUM值:3
循环当前NUM值:2
循环当前NUM值:1
3.do-while
语法结构:
do {
语句
} while(布尔表达式);
先执行语句,再判断while布尔条件,满足继续执行语句,否则跳出do-while,与while相比在于do-while无论是否满足条件,
上来就先执行do里的语句,然后再谈条件,颇有点黑社会气质,做事比较刚猛。
eg:
package com.lanhuigu.base; public class DoWhileTest { public static void main(String[] args) { int num = 10; do { System.out.println("循环当前的NUM:" +num); --num; } while (num > 0); System.out.println("========================"); int numTest = 10; do { System.out.println("无论条件是否满足,先执行改语句;再去判断numTest>10是否成立," + "成立再执行该语句,否则跳出do-while"); } while (numTest > 10); } }执行结果:
循环当前的NUM:10
循环当前的NUM:9
循环当前的NUM:8
循环当前的NUM:7
循环当前的NUM:6
循环当前的NUM:5
循环当前的NUM:4
循环当前的NUM:3
循环当前的NUM:2
循环当前的NUM:1
========================
无论条件是否满足,先执行改语句;再去判断numTest>10是否成立,成立再执行该语句,否则跳出do-while
4.for
for循环在第一次反复之前要进行初始化。随后,它会进行条件测试,而且在每一次反复的时候,进行某种
形式的“步进”(Stepping)。语法结构如下:
for(初始表达式; 布尔表达式; 步进) {
语句
}
eg:
package com.lanhuigu.base; public class ForTest { public static void main(String[] args) { for (int num = 1;num <= 10;++num) { System.out.println("当前循环的NUM:"+num); } } }执行结果:
当前循环的NUM:1
当前循环的NUM:2
当前循环的NUM:3
当前循环的NUM:4
当前循环的NUM:5
当前循环的NUM:6
当前循环的NUM:7
当前循环的NUM:8
当前循环的NUM:9
当前循环的NUM:10
5.switch
“开关”(Switch)有时也被划分为一种“选择语句”。根据一个整数表达式的值,switch语句可从一系列
代码选出一段执行。它的格式如下:
switch(整数选择因子) {
case 整数值1 : 语句; break;
case 整数值2 : 语句; break;
case 整数值3 : 语句; break;
case 整数值4 : 语句; break;
case 整数值5 : 语句; break;
//..
default:语句;
}
其中,“整数选择因子”是一个特殊的表达式,能产生整数值。switch 能将整数选择因子的结果与每个整数
值比较。若发现相符的,就执行对应的语句(简单或复合语句)。若没有发现相符的,就执行default语句。
eg:
package com.lanhuigu.base; public class SwitchTest { public static void main(String[] args) { int num = 2;//变换num的值,体验语法 switch (num) { case 1:System.out.println("当前选中的NUM值:" + num); break; case 2:System.out.println("当前选中的NUM值:" + num); break; case 3:System.out.println("当前选中的NUM值:" + num); break; case 4:System.out.println("当前选中的NUM值:" + num); break; case 5:System.out.println("当前选中的NUM值:" + num); break; case 6:System.out.println("当前选中的NUM值:" + num); break; case 7:System.out.println("当前选中的NUM值:" + num); break; case 8:System.out.println("当前选中的NUM值:" + num); break; default:System.out.println("没有找到对应的NUM,执行该默认语句"); break; } } }执行结果:
当前选中的NUM值:2
注意:在java 7中,对switch表达式进行了放宽处理,可以使用字符串判断。
eg:
package com.lanhuigu.base.testswitch; public class TestSwitch { public static void main(String[] args) { String sex = "0"; switch (sex) { case "0": System.out.println("This is man!"); break; default: System.out.println("This is woman!"); break; } } }
相关文章推荐
- PHP数据库保存session会话
- Entity Framework 6 Database-first连接Oracle11g
- 团队二阶段冲刺个人工作总结10
- PRO-2 Day1
- 虚拟磁盘恢复虚拟机
- JS使图片在图片框中自适应,按比例缩放
- NodeJS+Expres+Socket.io实现HTTP通知websocket客户端
- 不重启虚拟机在线增加网卡
- Mysql存储引擎概念特点介绍及不同业务场景选用依据
- SQL分组多列统计(GROUP BY后按条件分列统计)
- jQuery get post 碎片(远程html)加载
- 磁盘扩容
- 快照管理
- [iOS 字符串] 字符串后几位截取
- 百度地图sdk定位所在的城市名称和街道信息
- virsh 常用操作
- 克隆虚拟机
- Unity3D和网页数据交互的基本原理
- java使用google验证码jar包
- 怎么修改button切换选中状态的时候背景出现一个小蓝点的问题