c# - 如何在循环中使用相同的变量在循环中添加变量(如果可能)
问题描述
我这里有一个小型控制台应用程序,我希望用户输入他们的月薪,然后输入他们的“费用”来计算他们在扣除费用后一个月内有多少钱(一个计算器告诉用户如何一旦支付了所有账单,他们每月有很多钱)。我想从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));
解决方案
我做了几个更改:
1)最重要的是:Expenses +=
将他们每次输入的内容添加到他们之前输入的金额中。这将是您可以从薪水中减去的总费用。
2) 不要为 Finished 使用单独的变量,只需将 Finished 变量设置为输入“true”还是“false”。
3)不需要if
andbreak
语句,只需让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)}");
推荐阅读
- python - Tkinter 窗口从命令行打开,但不是 IDE
- r - mlr 等效于 R 中的插入符号模型 selectionFunction
- c++ - inet_pton 是做什么的?我不应该得到我的 IP 地址,而是十进制吗?
- python-3.x - 用于 pyswarm 的 GPU
- javascript - 如何仅删除文本中的最终数字
- python - 寻找使用循环编写此 Tkinter 代码的更简洁方法
- python - Python中的索引和切片
- dataframe - Databricks:数据框将多列添加到一列中
- angular - 找不到 fusionchart 包。GET http://localhost:4200/fusioncharts.charts.js net::ERR_ABORTED 404(未找到)
- parsing - 如果我的任何测试失败,Bamboo 会显示“无测试构建”