学到更多

第7章:如果声明


要学习的最终核心编程控制流构造是条件语句( ifif/else )。

基本条件

一个 if/else 当且仅当提供时,语句执行“if”代码块测试对于程序到达声明时的世界状态是正确的。否则程序执行“else”代码块。

if( 测试 ){
如果是代码块
} else {
否则代码块
}

为了了解条件语句可能派上用场的地方,让我们编写一个让Karel反转锥体秒的程序。如果一个广场以前有锥体 ,卡雷尔应该拿起它。如果一个方格没有锥体 ,卡雷尔应该放下一个。

注意一个 if 声明不需要有 else 块 - 在这种情况下,语句操作类似于 while 只执行一次的循环:

if( 测试 ){
如果是代码块
}

条件

最后一个例子使用了一个新条件。以下列出了卡雷尔所知道的所有条件:

测试相反它检查什么
frontIsClear() frontIsBlocked() 卡雷尔面前有墙吗?
beepersPresent() noBeepersPresent() 这个角落有锥体吗?
leftIsClear() leftIsBlocked() 卡雷尔左边有墙吗?
rightIsClear() rightIsBlocked() Karel有没有墙?
beepersInBag() noBeepersInBag() 在Karel的包里有锥体吗?
facingNorth() notFacingNorth() 卡雷尔面向北方吗?
facingSouth() notFacingSouth() 卡雷尔面向南方?
facingEast() notFacingEast() 卡雷尔面向东方吗?
facingWest() notFacingWest() 卡雷尔面向西方?

把它们放在一起

恭喜!您现在知道所有核心编程控制流程块。当你使用Karel,方法,while循环,for循环学习它们时,if / else语句在几乎所有主要语言(包括Java)中都以相同的方式工作。

现在您已经拥有了构建块,您可以将它们组合在一起,为更复杂的问题构建解决方案。在很大程度上,编程是通过计算机解决问题的科学。由于问题通常很困难,因此解决方案以及实施这些解决方案的程序也很困难。为了使您更容易开发这些解决方案,您需要采用一种方法和规程,将复杂程度降低到可管理的规模。


下一章