第1章 使用复合赋值和循环语句
4.1 使用复合赋值操作符
任何算术操作符都可以像这样与赋值操作符合并,从而获得复合赋值操作符。
不要这样写 |
要这样写 |
Variable=Variable*number; |
Variable*=number; |
Variable=Variable/number; |
Variable/=number; |
Variable=Variable%number; |
Variable%=number; |
Variable=Variable+number; |
Variable+=number; |
Variable=Variable-number; |
Variable-=number; |
提示:复合赋值操作符具有和简单赋值操作符(=)一样的优先级和右结合性。
注意:变量递增或递减1不要使用复合赋值操作符,而是使用操作符++和--。
例如,不要这样写:
Count+=1;
而是这样写:
Count++;
4.2 使用while语句
使用while语句,可在条件为true时重复运行一个语句。While语句的语法如下:
while(booleanExpression)
statement
先求值booleanExpression(布尔表达式,注意必须放在圆括号中),为true就运行语句(statement)。再次求值booleanExpression,仍为true就再次运行语句。再次求值...如此反复,直至求值为false,此时while语句退出,从while构造后的第一个语句继续。
while语句在语法上和if语句相似(事实上,除关键字不同,语法完全一样),具体如下。
- 表达式必须是布尔表达式。
- 布尔表达式必须放在圆括号中。
- 首次求值布尔表达式为false,语句不运行。
- 要在while的控制下执行两个或更多语句,必须用大括号将语句分组成代码块。
正确while语句写法:
注意:while循环的变量i控制循环次数。这是常见的设计模式,具有这个作用的变量有时也成为哨兵变量。
4.3 编写for语句
for语句提供了结构更正式版本,它将intialization(初始化)、booleanExpression(布尔表达式)与update control variable(更新控制变量)合并到一起。用过for语句就能体会到它的好处,它能防止遗漏初始化和更新控制变量的代码,减小写出无限循环代码的机率。以下是for语句的语法:
for(intialization;booleanExpression;update control variable)
statement
其中,statement(语句)是for循环主体,要么是一个语句,要么是用大括号{}封闭的代码块。
正确for语句写法:
注意:1.初始化只发生一次;2.初始化后先执行循环主体语句,再更新控制变量;3.更新控制变量后再重新求值布尔表达式。
4.4 编写do语句
do语句它的布尔表达式在每次循环之后求值,所以主体至少执行一次。
do语句的语法如下(不要忘记最后的分号):
do
statement
while(booleanExpression);
多个语句构成的循环主体必须是放在{}中的代码块。以下语句向控制台输出0~9,这次使用do语句:
break和continue语句
break可跳出switch语句。还可用它跳出循环。执行break后,系统立即终止循环,并从循环之后的第一个语句继续执行。在这种情况下,循环的“更新”和“继续”条件都不会重新判断。
相反,continue语句造成当前循环结束,立即开始下一次循环(在重新求值布尔表达式之后)。下面是在控制台上输出0~9的例子的另外一个版本,这次使用break语句和continue语句:
(建议慎用continue语句,或者根本不用,因为它很容易造成难以理解的代码。continue语句的行为还让人捉摸不透。例如,在for语句中执行continue语句,会在运行for语句的“更新(控制变量)”部分之后,才开始下一次循环。)