找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 8228|回復: 9
收起左側

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

[復制鏈接]
ID:104779 發(fā)表于 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;
      }

.......
這樣如何才能寫得高效呢?請各位大神指教。



回復

使用道具 舉報

ID:246251 發(fā)表于 2018-12-13 08:10 | 顯示全部樓層
d>5&&d<7   那不就是6嗎
回復

使用道具 舉報

ID:445745 發(fā)表于 2018-12-13 16:12 | 顯示全部樓層
可以用switch語句
回復

使用道具 舉報

ID:104779 發(fā)表于 2018-12-13 19:03 | 顯示全部樓層

5和7之間為隨機數字段。所以才問下是否能簡化寫法。
回復

使用道具 舉報

ID:104779 發(fā)表于 2018-12-13 19:04 | 顯示全部樓層
switch(????這里該如何定義呢?)
回復

使用道具 舉報

ID:445887 發(fā)表于 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;
      }
回復

使用道具 舉報

ID:446291 發(fā)表于 2018-12-14 14:01 | 顯示全部樓層
switch(d)
{
      case 6:F=d*8;break;

}
回復

使用道具 舉報

ID:446291 發(fā)表于 2018-12-14 14:02 | 顯示全部樓層
swhich啊,像13,14,這樣的不要用break,就行了,要么就if else if
回復

使用道具 舉報

ID:170498 發(fā)表于 2018-12-14 15:57 | 顯示全部樓層
應該這樣寫
if ( ...)
{
}
else if (...)
{
}
.
.
.
else if (...)
{
}
else
{
}
這樣的結構只要前面的符合條件了,那么下面的就不判斷了,比你用多個if()效率高
回復

使用道具 舉報

ID:104779 發(fā)表于 2018-12-14 19:53 | 顯示全部樓層

謝謝。
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表