如何解决如何询问直到用户在 C# 中得到特定答复
{
bool stayInLoop = true;
while(stayInLoop)
{
Console.WriteLine("Enter Yor Number");
var PlusA = Console.ReadLine();
Console.WriteLine("Enter Yor Number");
var PlusB = Console.ReadLine();
if(PlusA == ';')
{
stayInLoop = false;
break;
}
else if(PlusB == ';')
{
stayInLoop = false;
break;
}
else
{
Console.WriteLine("Answer =");
Console.WriteLine(PlusA + PlusB);
}
}
}
我想做一个加号计算器,我想让用户输入超过 2 个数字,不断询问 PlusC、PlusD,直到他们输入符号 ;
。
例如 PlusA PlusB PlusC 和 PlusD 中的用户编号,他/她输入 ;
所以它应该打印 PlusA + PlusB + PlusC
如果他在PlusD中输入一个数字,它应该要求PlusE,直到他/她输入;
,它应该把之前的所有数字相加
我想自动执行这个过程,程序会要求 PlusA 到 PlusZ 本身而不是 int
我自己的,怎么做? (我知道我没有说清楚,因为我找不到更好的词)
解决方法
您希望在用户输入 ;
之前添加数字。您应该为此使用循环。这是使用 for
循环的完整解决方案:
switch(exp)
{
case "+":
{
var sum = 0;
for(;;)
{
Console.WriteLine("Enter Yor Number");
var line = Console.ReadLine();
if (line == ";") break;
sum += Convert.ToInt32(line);
}
Console.WriteLine(sum);
break;
}
}
在这里,我们一遍又一遍地重复循环中的部分,将输入的数字累积到 sum
变量中,直到用户输入 ;
- 那时我们以 break
结束循环。>
使用 while
循环:
switch(exp)
{
case "+":
int sum = 0;
string input = "";
do
{
Console.WriteLine("Enter your number:");
input = Console.ReadLine();
if (input != ";")
sum += int.Parse(input);
} while (input != ";");
Console.WriteLine("Answer =" + sum);
break;
}
,
您遇到了问题,因为您应该使用 while statement 迭代代码直到满足退出/结束条件。
switch(exp)
{
case "+":
int mySum = 0;
string userInput = "";
while(userInput != ";")
{
Console.WriteLine("Enter number to add (';' to end the sum):");
userInput = Console.ReadLine();
if (userInput != ";")
{
// Would be interesting checking if entered really is an integer,for example Int32.TyParse()
mySum = mySum + Convert.ToInt32(userInput);
}
}
Console.WriteLine("Answer =" + mySum.ToString());
break;
}
,
感谢您的回复,但是有什么办法可以自动处理这个过程,程序会要求 PlusA 到 PlusZ 本身而不是我自己的 int
bool stayInLoop = true;
while(stayInLoop)
Console.WriteLine("Enter Yor Number");
var PlusA = Console.ReadLine();
Console.WriteLine("Enter Yor Number");
var PlusB = Console.ReadLine();
if(PlusA == ';')
{
stayInLoop = false;
break;
}
else if(PlusB == ';')
{
stayInLoop = false;
break;
}
else
{
Console.WriteLine("Answer =");
Console.WriteLine(PlusA + PlusB);
}
}
当我运行它时,它会出现“错误 CS0019”和“错误 CS0139”
,您正在寻找的是一个 while()
循环。
示例:
bool stayInLoop = true;
while(stayInLoop) // basically means (stayInLoop == true)
{
var text = Console.ReadLine();
if(text == ';')
{
stayInLoop = false;
break; // break will stop the loop,but you can also change the variable to false to break the loop.
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。