刚开始使用C#,这可能只是一个简单的修复,但我似乎无法看到它。一旦程序第一次执行(在添加两个数字之后),则提示用户输入是或否作为退出条件。当我输入' no'时,程序将再次循环。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BasicCalculator
{
class Program
{
static void Main(string[] args)
{
bool again = false;
while (!again)
{
Console.WriteLine("C# Basic Calcuator");
Console.WriteLine("Please enter two numbers to be added: ");
Console.WriteLine("Number 1: ");
int result;
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Number 2: ");
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Result: ");
result = a + b;
//print result
Console.WriteLine(result);
//potential exit condition
Console.WriteLine("Would you like to calculate again?");
if(Console.ReadLine() == "no")
{
again = false;
}
else
{
again = true;
}
}
}
}
}
非常感谢任何帮助!
答案 0 :(得分:10)
将前2行更改为以下内容:
bool again = true;
while (again)
答案 1 :(得分:3)
更改
while (!again)
带
while (again)
当用户输入no时,again
设置为false;所以在while
循环中再次被否定,这导致while循环的继续。
bool again = false;
到
bool again = true;
答案 2 :(得分:3)
您可以使用While
实现所需,并根据不同网民的建议进行细微更改,但您甚至可以使用do while
而不是第一次进入循环然后将进行循环每次都检查一下情况: -
正如MSDN所说: -
do语句执行语句或语句块 反复进行,直到指定的表达式求值为false。身体 循环必须括在括号{}中,除非它由a组成 单一陈述。在这种情况下,大括号是可选的。
bool again = false;
do {
Console.WriteLine("C# Basic Calcuator");
Console.WriteLine("Please enter two numbers to be added: ");
Console.WriteLine("Number 1: ");
int result;
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Number 2: ");
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Result: ");
result = a + b;
//print result
Console.WriteLine(result);
//potential exit condition
Console.WriteLine("Would you like to calculate again?");
if(Console.ReadLine() == "no")
{
again = false;
}
else
{
again = true;
}
} while (again);
答案 3 :(得分:2)
你可以写
again = (Console.ReadLine() == "no" ? true : false);
但是你选择的变量命名真的很模糊,更好的名字可能是
bool stopLoop = false;
while (!stopLoop)
{
.....
stopLoop = (Console.ReadLine() == "no" ? true : false);
}
正如下面的评论中所指出的,您不应该尝试转换为用户输入的整数,而无需更好地检查错误。在非数字值上使用Convert.ToInt32会引发异常。一个更好的代码可能是
int result;
if(!Int32.TryParse(Console.ReadLine(), out result))
{
Console.WriteLine("Please enter a valid number");
continue;
}
答案 4 :(得分:0)
意外编程能力激活!
if(Console.ReadLine() == "no")
again = true;
else
again = false;
您也可能想要将变量的名称更改为stop_flag
之类的内容,以便它有意义。