《Java核心技术 卷I》学习笔记6:控制流程

1 块作用域

块(复合语句)是指若干条Java语句组成的语句,并用一对大括号括起来。块确定了变量的作用域。

一个块可以嵌套在另一个块中。不能在嵌套的两个块中声明同名变量

2 条件语句

if语句:当条件满足时,执行语句体;条件不满足时,不执行语句体。

if (condition)
	statement

if-else语句:当条件满足时,执行if语句体;条件不满足时,执行else语句体。

if (condition) 
	statement1
else
	statement2

其中else子句与最邻近的未配对的if构成一组。

可以反复使用if...else if...构成多分支结构:

if (condition1) 
	statement1
else if (condition2) 
	statement2
// ...
else
	statement_n

3 循环

while语句:

while(condition)
	statement

do-while语句:

do
	statement
while(condition);

for循环:

for(expression1; expression2; expression3)
	statement

表达式1通常是对计数器初始化,表达式2给出循环条件,表达式3更新计数器。
有一条不成文的规则:for语句的3个表达式应该对同一个计数器变量进行初始化、检测和更新。

注意:在循环条件中检测两个浮点数是否相等需要格外小心,否则可能出现死循环。

4 switch语句

switch语句的基本结构如下:

switch(expression)
{
	case condition1:
		// 操作1
		break;
	case condition2:
		// 操作2
		break;
	/* ... */
	case condition_n:
		// 操作n
		break;
	default:
		// 例外操作
		break;
}

switch语句将从与括号内表达式的值向匹配的case标签开始执行,直到遇到break语句,或者执行到switch语句的结束处为止。如果没有匹配的case标签,而有default子句,就执行这个子句。

case标签可能是类型为charbyteshortint的常量表达式,或者是枚举常量。从Java 7开始,case标签还可以是字符串字面量。

5 中断控制流程的语句

5.1 break语句

break语句可以用来退出switch语句和循环语句。

Java还提供了带标签的break语句,用于跳出多重嵌套的循环语句。标签必须放在希望跳出的最外层循环之前,并且紧跟一个冒号。例如:

Scanner in = new Scanner(System.in);
int n;
read_data:
while (...)
{
	for (...)
	{
		n = in.nextInt();
		if (n < 0)
			break read_data; // 退出 read_data 标记的 while 语句
	}
}

事实上,可以将标签应用到任何语句,执行带标签的break语句会跳转到带标签的语句块末尾。

5.2 continue语句

continue语句将中断正常的控制流程,转移到最内层循环的首部。

还有一种带标签的continue语句,将跳到与标签匹配的循环的首部。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值