黑马程序员技术交流社区

标题: 关于if语句的一个小问题 [打印本页]

作者: yanglfree    时间: 2013-8-30 14:41
标题: 关于if语句的一个小问题
本帖最后由 yanglfree 于 2013-8-30 14:42 编辑

刚刚在做折半法查找的时候发现的一个小问题
  1. if (key > arr[mid])
  2.     min = mid + 1;
  3. else if (key < arr[mid])
  4.     max = mid - 1;
  5.     mid = (min + max)/2;
  6. else
  7.     return mid;
复制代码
写的程序是上面的,结果编译的时候提示“有if但是没有else”,我就奇怪了明明有if的啊,后来仔细看才发现在else之前加了一句话
应该就是这句话把if语句给打断了,不知道是不是这么理解,改成下面的就编译成功了
  1. if (key > arr[mid])
  2.      min = mid + 1;
  3. else if (key < arr[mid])
  4.     max = mid - 1;
  5. else
  6.     return mid;
  7.     mid = (min + max)/2;
复制代码

作者: Nero    时间: 2013-8-30 15:18
如果if后面没有“{}”的话,下面有效代码是只有一行的,第二行就不算if块里面的了  还有 else 、while、等都是如此:只要省略大括号,则有效代码只有一行!!!
作者: 毋须繁华    时间: 2013-8-31 12:30
if else 语句如果 if else 之间只有一句可以省略{},但是如果是多句的话就会报错。
建议每次的if else 都把{}写上,这样不容易出错。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2