如何询问直到用户在 C# 中得到具体答复
How to ask until the user get specific reply in 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 中的用户编号,he/she 输入 ;
所以它应该打印 PlusA + PlusB + PlusC
如果他在PlusD中输入一个数字,它应该要求PlusE,直到he/she输入;
,它应该总结之前的所有数字
而且我想自动执行该过程,程序将要求 PlusA 到 PlusZ 本身而不是 int
我自己的,该怎么做? (我知道我没有说清楚,因为我找不到更好的词)
您要查找的是 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.
}
}
您想在用户输入 ;
之前添加数字。你应该为此使用循环。这是使用 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.
迭代代码直到满足您的 exit/end 条件
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 本身而不是我自己的
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);
}
}
当我 运行 这个时,它 运行 出 'error CS0019' 和 'error CS0139'
{
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 中的用户编号,he/she 输入 ;
所以它应该打印 PlusA + PlusB + PlusC
如果他在PlusD中输入一个数字,它应该要求PlusE,直到he/she输入;
,它应该总结之前的所有数字
而且我想自动执行该过程,程序将要求 PlusA 到 PlusZ 本身而不是 int
我自己的,该怎么做? (我知道我没有说清楚,因为我找不到更好的词)
您要查找的是 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.
}
}
您想在用户输入 ;
之前添加数字。你应该为此使用循环。这是使用 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.
迭代代码直到满足您的 exit/end 条件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 本身而不是我自己的
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);
}
}
当我 运行 这个时,它 运行 出 'error CS0019' 和 'error CS0139'