找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 8188|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

在C語言程序中多個if語句如何簡化寫法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:104779 發(fā)表于 2018-12-12 23:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
在程序中,當(dāng)有多個數(shù)據(jù)要判斷,如何才能編得高效?
例如
    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空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:246251 發(fā)表于 2018-12-13 08:10 | 只看該作者
d>5&&d<7   那不就是6嗎
回復(fù)

使用道具 舉報

板凳
ID:445745 發(fā)表于 2018-12-13 16:12 | 只看該作者
可以用switch語句
回復(fù)

使用道具 舉報

地板
ID:104779 發(fā)表于 2018-12-13 19:03 | 只看該作者

5和7之間為隨機(jī)數(shù)字段。所以才問下是否能簡化寫法。
回復(fù)

使用道具 舉報

5#
ID:104779 發(fā)表于 2018-12-13 19:04 | 只看該作者
switch(????這里該如何定義呢?)
回復(fù)

使用道具 舉報

6#
ID:445887 發(fā)表于 2018-12-13 20:20 | 只看該作者
如果d為浮點數(shù)的話,那也沒什么辦法了,下面這么寫可能會少一些判斷
   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;
      }
回復(fù)

使用道具 舉報

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

}
回復(fù)

使用道具 舉報

8#
ID:446291 發(fā)表于 2018-12-14 14:02 | 只看該作者
swhich啊,像13,14,這樣的不要用break,就行了,要么就if else if
回復(fù)

使用道具 舉報

9#
ID:170498 發(fā)表于 2018-12-14 15:57 | 只看該作者
應(yīng)該這樣寫
if ( ...)
{
}
else if (...)
{
}
.
.
.
else if (...)
{
}
else
{
}
這樣的結(jié)構(gòu)只要前面的符合條件了,那么下面的就不判斷了,比你用多個if()效率高
回復(fù)

使用道具 舉報

10#
ID:104779 發(fā)表于 2018-12-14 19:53 | 只看該作者
老馬工作室 發(fā)表于 2018-12-14 15:57
應(yīng)該這樣寫
if ( ...)
{

謝謝。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表