找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 7356|回复: 9
打印 上一主题 下一主题
收起左侧

在C语言程序中多个if语句如何简化写法

[复制链接]
跳转到指定楼层
楼主
ID:104779 发表于 2018-12-12 23:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在程序中,当有多个数据要判断,如何才能编得高效?
例如
    if(d>5&&d<7)
      {
        F=d*5;
      }

        if(d>7&&d<9)
      {
        F=d*6;
      }
     ..........
    if(d>10&&d<12)
      {
        F=d*8;
      }
    if(d>12&&d<15)
      {
        F=d*9;
      }

.......
这样如何才能写得高效呢?请各位大神指教。



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:246251 发表于 2018-12-13 08:10 | 只看该作者
d>5&&d<7   那不就是6吗
回复

使用道具 举报

板凳
ID:445745 发表于 2018-12-13 16:12 | 只看该作者
可以用switch语句
回复

使用道具 举报

地板
ID:104779 发表于 2018-12-13 19:03 | 只看该作者

5和7之间为随机数字段。所以才问下是否能简化写法。
回复

使用道具 举报

5#
ID:104779 发表于 2018-12-13 19:04 | 只看该作者
switch(????这里该如何定义呢?)
回复

使用道具 举报

6#
ID:445887 发表于 2018-12-13 20:20 | 只看该作者
如果d为浮点数的话,那也没什么办法了,下面这么写可能会少一些判断
   if(d>5)
      if(d<7)
      {
        F=d*5;
      }

      else  if(d<9)
      {
        F=d*6;
      }
     ..........
    else if(d<12)
      {
        F=d*8;
      }
    else if(d<15)
      {
        F=d*9;
      }
回复

使用道具 举报

7#
ID:446291 发表于 2018-12-14 14:01 | 只看该作者
switch(d)
{
      case 6:F=d*8;break;

}
回复

使用道具 举报

8#
ID:446291 发表于 2018-12-14 14:02 | 只看该作者
swhich啊,像13,14,这样的不要用break,就行了,要么就if else if
回复

使用道具 举报

9#
ID:170498 发表于 2018-12-14 15:57 | 只看该作者
应该这样写
if ( ...)
{
}
else if (...)
{
}
.
.
.
else if (...)
{
}
else
{
}
这样的结构只要前面的符合条件了,那么下面的就不判断了,比你用多个if()效率高
回复

使用道具 举报

10#
ID:104779 发表于 2018-12-14 19:53 | 只看该作者
老马工作室 发表于 2018-12-14 15:57
应该这样写
if ( ...)
{

谢谢。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表