《交互式程序设计 第2版》一2.4 控制语句

简介:

本节书摘来华章计算机《交互式程序设计 第2版》一书中的第2章 ,第2.4节,Joshua Noble 著 毛顺兵 张婷婷 陈宇 沈鑫 任灿江 译更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.4 控制语句

你经常需要控制程序的逻辑流程。如果某个条件成立,则执行某些操作;不成立则执行另外的操作。有时你想多次重复某个操作直到条件有所变化。你可以使用两种控制语句来实现以上提及的逻辑流程:一种是条件逻辑语句,判断条件为true还是false;另一种是循环语句,对一个操作重复一定的次数,或者一直重复到某个条件变为false为止。

2.4.1 if/then

if/then是一组条件逻辑语句,用法就跟这两个单词在英语中的意思差不多:“如果(if)下雨,那么(then)我就带把伞。”这个语句可以这样用:

if(条件) { 
    条件为true时的结果
} else { 
    条件为false时的结果 
}

紧接着“if”的圆括号里必须是一个返回布尔类型值(true或false)的表达式。例如:

int myWeight = 72; 
if(myWeight > 100) { 
    print(" you're getting heavy! "); 
} else { 
    print(" you're still doing ok "); 
}

“else”不是必需的:

int myHeight = 181; 

if(myHeight > 200) { 
    print(" you're too tall "); 
}

只有当if的条件语句为true时,才执行花括号里的操作;如果条件语句不为true,则什么都不做。你可以试一试把条件设为false,看看结果。

boolean allDone = false; 

if(!allDone) { // 如果allDone的值取反后为true
    print(" keep going! "); 
} else { 
    print(" ok, quit! "); 
}

条件控制语句还有一种写法:

if(age == 5){ 
    print(" you're 5!"); 
} else if(age == 25) { 
    print(" you're 25!"); 
} else { 
    print(" can't login "); // 如果以上皆非 
}

在上面这个例子里,使用了一个新语句“else if”,其作用在于在进入else条件判断之前插入一个判断。也就是如果第一个条件不为true,那么就看else if的条件是否为true,如果仍然不为true,就流到最后的else语句。

2.4.2 for循环

使用for语句可以按一定的次数和条件重复同一个操作。循环经常用于遍历数组元素,逐个元素地访问、使用或变更。循环非常有用,尤其是在处理图像像素、视频帧、声音、网络数据以及其他需要分类或排序的信息的时候:

int i; 
for(i = 0; i < 10; i++) { 
    print(char(i)+", "); // 将打印 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 
}

for语句的条件里有3个部分,如图2-5所示。
整数i用来设定循环执行的次数,每次循环执行花括号里的语句。初始化for循环的时候,把i设为0,只要i不大于10,循环继续执行,每执行完一次循环,i值增加1。
i也可以用自减来计数:

for(int i = 5; i>-1; i--){ 
    print(i); 
}

image

图2-5:for循环
for循环另外一个巨大的用处就是遍历数组元素:

int[] intArr = {0, 1, 2, 3, 4, 5}; 
int sum = 0; 
for(int j = 0; j < 6; j++){ 
    sum += intArr[j]; // 通过循环得到数组中的元素 
}

循环每执行一次,数组intArr的下一个整型元素就会累加到Sum。

2.4.3 while循环

while循环和for循环类似,只是看起来简单一点:

while(trueOrFalse){ 
//每次循环执行的操作 
}

只要while括号里的表达式仍然为true,循环就继续执行。要注意的是,如果括号里表达式一直不变为false,那么循环永远不会停下来,程序就会跑死。这叫“死循环”——无法终止并跳出的循环,会让程序无法使用甚至崩溃。所以在使用控制语句的时候,要对终止条件多加小心。下面是一个使用了计数器的例子:

int j = 0; 

while(j < 100) { 
    print(" what's up? "+j); 
    j++; // 如果j不自加,就会变成死循环
}

每执行一次循环,j自加1。当j不小于100的时候,就会跳出循环,程序继续往下执行:

boolean ready = false; 
float number = 0.0; 
while(ready != true) { 
    print(" we're just waiting" ); 
    number += 0.1; 
    if(number > 1.0){ 
        ready = true; 
    } 
} 
print(" we're ready ");

在上面这个例子里,使用了一个自增的数和一个布尔型变量,去判断是否准备好(ready)跳出循环。直到变量ready变为true,循环才会停止,然后打印出“we抮e ready”的消息。

2.4.4 continue

continue语句告知程序跳过当前循环的其他语句而直接进行下一个循环。例如,如果你要循环若干次,但只在奇数次的时候执行某些操作,可以这样做:

for(int i = 0; i< 10; i++) { 
    if( i % 2 == 0){ 
        continue; 
    } 
    println(i + " is not divisible by 2");
}

程序打印出以下内容:

1 is not divisible by 2 
3 is not divisible by 2 
5 is not divisible by 2 
7 is not divisible by 2 
9 is not divisible by 2

continue语句让程序跳进下一次循环。如果你有一个复杂的操作,可以使用continue语句去控制是否跳过这个操作而进入下一次循环,也就是说,可以避免程序做多余的事情。

2.4.5 break

使用break语句可中止循环。通常为了寻找某个东西而遍历一个数组,而当你找到它的时候,就可以用break语句轻松中止循环不再查找了,代码可以这样写:

int[] intArr = {1, 2, 3, 4, 5, 6, 2, 12, 2, 1, 19, 123, 1, 3, 13}; 
int counter = 0; 

while(counter < intArr.length) 
{ 
    if(intArr[counter] == 5) { // 正在寻找5 
        print(" found it at "); 
        break; 
    } 
    counter++; 
} 
// break执行完毕后,代码从这里继续执行
print(counter); // 元素intArr[4]就是5
相关文章
|
1月前
|
C++
C++语言中流程控制
C++语言中流程控制
12 0
|
29天前
第五章循环结构(一)
第五章循环结构(一)
7 0
|
3月前
|
Shell C语言 Perl
Shell 编程快速入门 之 循环结构详解
Shell 编程快速入门 之 循环结构详解
58 0
Shell 编程快速入门 之 循环结构详解
|
4月前
第五章:循环结构程序设计
第五章:循环结构程序设计
19 1
|
4月前
|
Serverless
第四章:分支结构程序设计
第四章:分支结构程序设计
29 0
|
6月前
|
Shell
Shell编程:流程控制与高级应用的深入解析
Shell 流程控制 使用Shell编程时,流程控制是非常重要的,它允许你根据条件执行不同的命令或者控制程序的执行流程。Shell支持一些基本的流程控制结构,包括条件语句和循环语句。 1、条件语句 if语句 if [ 条件 ]; then # 如果条件为真执行的命令 elif [ 其他条件 ]; then # 如果其他条件为真执行的命令 else # 如果所有条件都不为真执行的命令 fi 示例: #!/bin/bash read -p "请输入一个数字: " num if [ $num -eq 0 ]; then echo "输入的数字是零" elif [ $n
52 1
|
10月前
|
Python
探索Python条件语句的奇妙世界:解密逻辑与控制流
探索Python条件语句的奇妙世界:解密逻辑与控制流
|
数据安全/隐私保护 Python
Python程序开发——第二章 条件语句和循环语句
Python程序开发——第二章 条件语句和循环语句
Python程序开发——第二章 条件语句和循环语句
利用if...else if....else循环语句编程
利用if...else if....else循环语句编程
98 0

相关实验场景

更多