簡體   English   中英

錯誤 CS0201:只有賦值、調用、遞增、遞減、等待和新的 object 表達式可以用作語句 c#

[英]error CS0201: Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement c#

提前謝謝你,請注意我對 c# 相當陌生,

我試圖在 codewars 上對 kata 進行以下測試,但我在標題中收到錯誤,我不明白為什么? 我在visualStudio上使用了相同的代碼,它工作正常

測試:如果我們列出所有小於 10 且是 3 或 5 的倍數的自然數,我們得到 3、5、6 和 9。這些倍數之和為 23。

完成解決方案,使其返回傳入數字以下所有 3 或 5 的倍數之和。

注意:如果數字是 3 和 5 的倍數,只計算一次

代碼:

    public static int Solution(int value)
  {
            int sum = 0;
            for (int i= 1; i < value; i++)
            {
                int multiples3 = 3 * i;
                int multiples5 = 5 * i;
                if (multiples3 != multiples5)
                {
                    sum = sum+multiples3+multiples5;
                }
                else
                {
                    sum = sum + multiples3;
                }     
            }
    return (sum);
  }

CS0201 是線路引起的

返回(總和);

將其更改為

返回總和;

簡化的解決方案是:

 public static int Solution(int value)
  {
            int sum = 0;
            for (int i= 1; i < value; i++)
            {
                bool multiples3 = i % 3 == 0;
                bool multiples5 = i % 5 == 0;
                if (multiples3 || multiples5)
                {
                   sum += i;
                }     
            }
    return sum;
  }

如果我們考慮到最早匹配條件的 i 是 3,那么它可以進一步簡化:

 public static int Solution(int value)
  {
            if (value < 3) return 0; // prevent value being less than 3, e.g. -1

            int sum = 0;
            for (int i= 3; i < value; i++)
            {
                if (i % 3 == 0 || i % 5 == 0)
                {
                   sum += i;
                }     
            }
    return sum;
  }

暫無
暫無

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

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