博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跳台阶
阅读量:6828 次
发布时间:2019-06-26

本文共 1273 字,大约阅读时间需要 4 分钟。

错误写法:

class Solution {public:    int jumpFloor(int number) {        if(number <= 0)            return 0;        int result[2] = {
1,2}; else if(number <= 2) return result[number-1]; int num1 = 1; int num2 = 2; int num3 = 0; for(int i = 3;i <= number;i++){ num3 = num1 + num2; num1 = num2; num2 = num3; } return num3; }};

else if这一句会报错,else if应该是紧跟在if语句后面,中间不能插入其他语句,不然else if不知道之前的if是哪一个。

正确写法:

class Solution {public:    int jumpFloor(int number) {        int result[2] = {
1,2}; if(number <= 0) return 0; else if(number <= 2) return result[number-1]; int num1 = 1; int num2 = 2; int num3 = 0; for(int i = 3;i <= number;i++){ num3 = num1 + num2; num1 = num2; num2 = num3; } return num3; }};

这里要强调一下else if与if 的不同。这段代码,把else if换成if也是正确的,但并不代表else if和if是一样的。

现在假设把number小于0情况后面的语句换成不是return,而是其他语句,并且假设number = -1,。

1.else if的情况:number只执行number < 0这种情况的语句,不会进入number < 2这种情况去执行语句。虽然else if只写了一个number <= 2,但因为有else,实际上

的条件是0 < number <=2。

2.if的情况:number执行完number < 0的语句,顺序执行number < 2的语句。这里的number < 2就是所有小于2的number。

之所以这里一样,是因为number < 0的时候直接return,结束了整个程序。

转载地址:http://xeukl.baihongyu.com/

你可能感兴趣的文章
关于对FLASH开发,starling、starling feathers、starling MVC框架的理解
查看>>
【Python】京东商品价格监控
查看>>
Codeforces 10A-Power Consumption Calculation(模拟)
查看>>
Project Euler:Problem 42 Coded triangle numbers
查看>>
李洪强iOS开发之Block和协议
查看>>
Python 调用snmp自定义OID实现监控
查看>>
Spark Streaming概念学习系列之SparkStreaming性能调优
查看>>
hdu 5375 - Gray code(dp) 解题报告
查看>>
Android推送 百度云推送 入门篇
查看>>
Java正则表达式过滤出字母、数字和中文
查看>>
vector删除元素与清除内存空洞
查看>>
Activex感知网页刷新关闭事件
查看>>
Libvirt中windows虚拟机的动态内存管理
查看>>
Xamarin开发笔记—设备类&第三方弹窗的使用和注意事项
查看>>
用外部物理路由器时使用Neutron dhcp-agent提供的metadata服务(by quqi99)
查看>>
P2023 [AHOI2009]维护序列
查看>>
requireJS文件夹
查看>>
苹果电脑 剪切文件 文件夹 快捷键
查看>>
paramiko远程
查看>>
云计算的概念
查看>>