A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yanglfree 中级黑马   /  2013-8-30 14:41  /  913 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 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;
复制代码

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

2 个回复

倒序浏览
如果if后面没有“{}”的话,下面有效代码是只有一行的,第二行就不算if块里面的了  还有 else 、while、等都是如此:只要省略大括号,则有效代码只有一行!!!

评分

参与人数 1技术分 +1 收起 理由
EYE_SEE_YOU + 1

查看全部评分

回复 使用道具 举报
if else 语句如果 if else 之间只有一句可以省略{},但是如果是多句的话就会报错。
建议每次的if else 都把{}写上,这样不容易出错。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马