首页 > 解决方案 > 如何在循环中使用相同的变量在循环中添加变量(如果可能)

问题描述

我这里有一个小型控制台应用程序,我希望用户输入他们的月薪,然后输入他们的“费用”来计算他们在扣除费用后一个月内有多少钱(一个计算器告诉用户如何一旦支付了所有账单,他们每月有很多钱)。我想从int Salary. 我希望费用继续填充,直到用户输入“false”,在bool FinishedAdding当前变量Expenses只包含一个值,我想添加所有费用,然后从工资中减去。我这样做是正确的还是错误的方法?

string NewLine = "\n";
bool Finished = false;
var Expenses = default(int);

Console.WriteLine("Enter you earn a month (after tax");
int Salary = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(NewLine);

if (Finished != true)
{
    while (Finished == false)
    {
        Console.WriteLine("What are your expenses");
        Expenses = Convert.ToInt32(Console.ReadLine());

        Console.WriteLine("You are finished?");
        bool FinishedAdding = Convert.ToBoolean(Console.ReadLine());

        if (FinishedAdding == true)
        {
            break;
        }
    }
}

Console.WriteLine(NewLine);
Console.WriteLine("Your total is: " + (Expenses - Salary));

标签: c#while-loop

解决方案


我做了几个更改:
1)最重要的是:Expenses +=将他们每次输入的内容添加到他们之前输入的金额中。这将是您可以从薪水中减去的总费用。
2) 不要为 Finished 使用单独的变量,只需将 Finished 变量设置为输入“true”还是“false”。
3)不需要ifandbreak语句,只需让while条件检查Finished变量即可。

string NewLine = "\n";
bool Finished = false;
var Expenses = default(int);

Console.WriteLine("Enter you earn a month (after tax)");
int Salary = Convert.ToInt32(Console.ReadLine());
Console.WriteLine(NewLine);

while (Finished == false)
{
    Console.WriteLine("What are your expenses");
    Expenses += Convert.ToInt32(Console.ReadLine());

    Console.WriteLine("You are finished?");
    Finished = Convert.ToBoolean(Console.ReadLine());
}

Console.WriteLine(NewLine);
Console.WriteLine($"Your total is: {(Salary - Expenses)}");

推荐阅读