![](/img/trans.png)
[英]C# How do I use a variable outside of a loop that changes from string to int inside the loop?
[英]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.