簡體   English   中英

將 int 從循環移動到循環外 c#

[英]Moving int from loop to the outside of the loop c#

我是編程新手,我正在嘗試制作“計算器”……有點……

是否有任何簡單的方法可以將“Y”從循環中移出並將它們相加並在循環外打印?

源代碼截圖

為了將來參考,請將代碼和格式粘貼為代碼塊,以便人們更容易幫助您。

獲取在 for 循環之外輸入的值的簡單方法是使用列表。 您需要在循環之外聲明變量,使其 scope 超出循環本身,然后您可以將 Y 添加到列表中或直接解析到列表中:

var numbers = new List<int>();
for(int i=1; i<=X; i++)
{
    Console.Write("...");
    numbers.Add(int.Parse(Console.ReadLine()));
}
// Do stuff with "numbers" here.

請注意,您鏈接到的解決方案不是很好,沒有錯誤檢查以確保輸入的值是 int 例如(查找 int.TryParse())並詢問他們想要求和的數字是一種浪費,如果他們想輸入一個數字,他們只會得到那個數字,沒什么大不了的。 此外,如果您只是嘗試添加數字,則不需要“從循環中移動 Y”,您不需要關心每個單獨的 Y,只關心總和,那么您可以簡化:

var sum = 0;
for(int i=1; i<=X; i++)
{
    Console.Write("...");
    sum += int.Parse(Console.ReadLine());
}
// Do stuff with "sum" here.

目前尚不清楚您的要求是什么,但是...如果您想從用戶那里獲取迭代次數,然后對數字求和並在循環完成后將結果打印回來,您可以這樣做:

  Console.WriteLine("Enter count of numbers you want to sum...");
        int numberOfIterations = int.Parse(Console.ReadLine());


        while (numberOfIterations <= 1)
        {
            Console.WriteLine($"{numberOfIterations} is too small. Enter positive number or above 1");
            numberOfIterations = int.Parse(Console.ReadLine());
        }

        int sum = 0;

        for (int i = 0; i < numberOfIterations; i++)
        {
            Console.WriteLine("Write the number you want to add...");
            bool isNumber = int.TryParse(Console.ReadLine(), NumberStyles.None, CultureInfo.InvariantCulture,
                out int parsedNumber);
            if (isNumber)
            {
                sum += parsedNumber;
            }
        }

        Console.WriteLine($"Sum of all numbers is: {sum}");

所以你說你是編程新手,這就是為什么我會盡可能簡單地解釋代碼:1.詢問用戶他想要如何手動迭代 2.使用 while 循環進行一些簡單的防御檢查,直到他輸入正確的數字對於迭代...大於 1..如果不打印消息並再次詢問他,直到他輸入正確的數字。 3. 在進入循環之前為 sum 定義和初始化變量,該循環將對提供的值求和。 4.創建for循環,它將計算用戶輸入的迭代次數。 5.向用戶詢問號碼。 6.使用 int.TryParse 方法檢查數字是否為 int 類型....用戶可以在控制台中鍵入任何內容(sfsd,345,333.333,###$%#$%#)都會失敗。 TryParse 返回布爾值,如果在我們的案例“isNumber”中輸入正確,那么我們繼續對輸入求和。 7.循環結束后在控制台上打印總和...

暫無
暫無

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

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