簡體   English   中英

簡化多個 If-Else 語句

[英]Simplify multiple If-Else statement

我想知道是否有任何方法可以簡化以下 if-self 代碼:

if(a == null)
{
  variant = 1;
} else if (a == b)
{
  variant = 5;
} else if (a == c && a != d)
{
  variant = 6
} else if ....

是否准備好不想使用太多,如果其他人在我的代碼,但variant需要被分配到不同的值取決於a

謝謝。

在這些情況下,我更喜歡鏈式三元運算:

variant = 
      a == null ? 1
    : a == b ? 5
    : a == c && a != d ? 6
    : variant; // or whatever final default value you want

一長串if - else if語句本身並沒有錯。

由於您要求替代方案:如果將該代碼提取到單獨的方法中,則可以改用return語句和常規if s。 它還擺脫了冗余variant = ...賦值,記錄您的代碼並保持您的方法簡短。

int DetermineVariant(int? a, int b, int c, int d)
{
    if (a == null)
        return 1;

    if (a == b)
        return 5;

    if (a == c && a != d)
        return 6;

    // more conditions
}

我可能會受到批評,但如果你稍微改變一下代碼的外觀,它可能看起來不會太“長”。

   if(a == null) variant = 1;
   else if (a == b) variant = 5;
   else if (a == c && a != d) variant = 6;
   else if ....

而且您的代碼不會更難閱讀。 即使是pwilcox 版本(非常好,順便說一句),閱讀起來也比簡單的 if-else 更復雜。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM