要学习的最终核心编程控制流构造是条件语句( if
和 if/else
)。
一个 if/else
当且仅当提供时,语句执行“if”代码块测试对于程序到达该语句时的世界状况是正确的。否则,程序将执行“ else”代码块。
if
测试 :
如果是代码块
其他:
为了了解条件语句可能会派上用场,让我们编写一个让Karel反转一行锥体 s的程序。如果一个正方形以前有一个锥体 ,则Karel应该选择它。如果一个正方形没有锥体 ,则Karel应该放下一个。
注意一个 if
声明不需要有 else
块-在这种情况下,该语句像 while
只执行一次的循环:
if
测试 :
如果是代码块
最后一个例子使用了一个新条件。以下列出了卡雷尔所知道的所有条件:
测试 | 相反 | 它检查什么 |
---|---|---|
front_is_clear() |
front_is_blocked() |
卡雷尔面前有墙吗? |
锥体() |
目前没有锥体() |
这个拐角处有锥体吗? |
左边很清楚() |
左被挡() |
卡雷尔左边有墙吗? |
权利很明确() |
权利被封锁() |
Karel有没有墙? |
锥体_s() |
袋中没有锥体_s() |
卡雷尔的包里有锥体吗? |
朝北() |
不朝北() |
卡雷尔面向北方吗? |
朝南() |
不向南() |
卡雷尔面向南方? |
朝东() |
不面向东方() |
卡雷尔面向东方吗? |
朝西() |
不向西() |
卡雷尔面向西方? |
恭喜!您现在知道了所有核心编程控制流模块。当您通过Karel学习它们时,方法,while循环,for循环,if / else语句在几乎所有主要语言(包括Python)中的工作方式都相同。
现在您已经拥有了构建块,您可以将它们组合在一起,为更复杂的问题构建解决方案。在很大程度上,编程是通过计算机解决问题的科学。由于问题通常很困难,因此解决方案以及实施这些解决方案的程序也很困难。为了使您更容易开发这些解决方案,您需要采用一种方法和规程,将复杂程度降低到可管理的规模。