我正在写一个成绩计算器,最后,我问用户是否还有其他成绩要计算。
Console.Write("Do you have another grade to calculate? ");
moreGradesToCalculate = Console.ReadLine();
moreGradesToCalculate = moreGradesToCalculate.ToUpper();
我想显示一个对话框,其中包含选项“是”或“否”。
如果DialogResult为Yes,我希望能够再次运行程序,如果结果为No,我希望能够执行其他操作。
答案 0 :(得分:1)
您应该使用do...while(...)
循环。
答案 1 :(得分:0)
您可以使用do/while
构建
do {
Console.Write("Do you have another grade to calculate Y/N? ");
var moreGradesToCalculate = Console.ReadLine().ToUpper();
if(moreGradesToCalculate == "Y")
//do something
else if(moreGradesToCalculate == "N")
break;
}while(true);
答案 2 :(得分:0)
我认为再次运行整个程序并不是一个好主意,只需重新开始计算等级的数字(将代码包装在一个循环中)。
对于DialogBox,只需导入System.Window.Forms
程序集并使用它:
DialogResult result = MessageBox.Show("Do you want to start over?", "Question", MessageBoxButtons.YesNo);
if (result == DialogResult.No) {
// TODO: Exit the program
}
答案 3 :(得分:0)
如果需要对话框,则必须添加对System.Windows.Forms
的引用,并在文件顶部为同一命名空间添加using
语句。然后,您只需检查在Do-While循环结束时在Show
对象上调用MessageBox
方法的结果。例如:
do
{
// Grading calculation work...
}
while (MessageBox.Show("Do you have another grade to calculate?",
"Continue Grading?", MessageBoxButtons.YesNo) == DialogResult.Yes);
这会一直循环,直到用户点击否。
如果您不想继续使用鼠标,请在命令行上执行以下操作:
ConsoleKeyInfo key = new ConsoleKeyInfo();
do
{
// Grading work...
Console.WriteLine("\nDo you want to input more grades? (Y/N)");
do
{
key = Console.ReadKey();
}
while (key.Key != ConsoleKey.Y && key.Key != ConsoleKey.N);
}
while (key.Key == ConsoleKey.Y);
以下是有关循环的参考资料的链接 - 或来自Microsoft的“迭代语句”。 Do-While
是您刚开始时应该尝试学习的少数人之一: