如何在用户选择选项后继续运行此程序?这是我到目前为止的代码。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace calculator_extended
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Press A for addition");
Console.WriteLine("Press S for subtraction");
Console.WriteLine("Press M for Multiplication");
Console.WriteLine("Press D for Divide");
char c = Convert.ToChar(Console.ReadLine());
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());
switch (c)
{
case 'A':
case 'a':
{
int d = add(a, b);
Console.WriteLine(d);
break;
}
case 'S':
case 's':
{
int d = sub(a, b);
Console.WriteLine(d);
break;
}
case 'M':
case 'm':
{
int d = mul(a, b);
Console.WriteLine(d);
break;
}
case 'E':
case 'e':
{
int d = div(a, b);
Console.WriteLine(d);
break;
}
default:
{
Console.WriteLine("Please Enter the correct Character");
break;
}
}
}
private static int add(int a, int b)
{
return a + b;
}
private static int sub(int a, int b)
{
return a - b;
}
private static int mul(int a, int b)
{
return a * b;
}
private static int div(int a, int b)
{
return a / b;
}
}
}
答案 0 :(得分:6)
用
包裹你的代码while(true) {
// Your code here
// Don't forget to add a switch case for an Exit operation
case 'q':
Application.Exit();
}
如果您不熟悉编程,则应该查看Loops - 参见清单4-2 - 这是您尝试完成的一个很好的示例。
编辑: 我意识到你是编程的新手,我做认为你应该自己完成这个。 由于这是一个基本问题,这是一个完整的解决方案
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace calculator_extended
{
class Program
{
static void Main(string[] args)
{
int d = 0;
while (true)
{
Console.WriteLine("Press A for addition");
Console.WriteLine("Press S for subtraction");
Console.WriteLine("Press M for Multiplication");
Console.WriteLine("Press D for Divide");
char c = Convert.ToChar(Console.ReadLine());
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());
switch (c)
{
case 'A':
case 'a':
d = add(a, b);
Console.WriteLine(d);
break;
case 'S':
case 's':
d = sub(a, b);
Console.WriteLine(d);
break;
case 'M':
case 'm':
d = mul(a, b);
Console.WriteLine(d);
break;
case 'E':
case 'e':
d = div(a, b);
Console.WriteLine(d);
break;
case 'q':
case 'Q':
Application.Exit();
default:
Console.WriteLine("Please Enter the correct Character");
break;
}
}
}
private static int add(int a, int b)
{
return a + b;
}
private static int sub(int a, int b)
{
return a - b;
}
private static int mul(int a, int b)
{
return a * b;
}
private static int div(int a, int b)
{
return a / b;
}
}
}
答案 1 :(得分:1)
首先,为了使程序继续,你必须将它包装成while(true)循环,或者while {while while(某些键被按下)循环。无论如何,你必须在你的选项列表中添加第五个选项^^(这将是退出选项)
我相信,为了解决您的问题,您有两种选择:
使用while(true)循环
main()方法中的所有代码都将包含在while(true)循环中。完成后,您将读取退出键,就像任何其他键(A,S,M,D)一样,并将其发送到正确的退出方法。这个“退出方法”将在主函数之外创建。完成后,它应该看起来像这样:
static void Main(string args[])
{
Console.WriteLine("Press A for addition");
Console.WriteLine("Press S for subtraction");
Console.WriteLine("Press M for Multiplication");
Console.WriteLine("Press D for Divide");
Console.WriteLine("Press X to exit");
//... all the stuff up to the switch
switch(c)
{
//all the cases from before
case 'x' : exitMethod();break;
}
}
private static void exitMethod()
{
Application.Exit();
}
使用do-while循环
main()方法中的所有代码都将包含在do-while循环中。是的,它类似于使用while(true)循环,但是您必须在此时更改语句。它会是这样的:
do { // here is all the code in main()
}while(Console.ReadKey(true).Key != ConsoleKey.X);
这就是do-while循环。你不需要调用一个特殊的exit方法,因为程序只会跳出do while循环,并像现在一样(通常)关闭它。
老实说,我宁愿选择do-while循环,因为它也可以处理键的组合。 有关详情,请访问此链接:http://www.dotnetperls.com/console-readkey
答案 2 :(得分:0)
这可以通过循环解决。我通常会为这种控制台应用程序使用Do ... While循环。
在学习的过程中你会遇到这些事情......我建议你在尝试编写你还没有完成技能的代码之前,继续学习你正在做的任何指导学习课程。
答案 3 :(得分:0)
你需要研究while loops的使用,这是你在这里使用的方法,让你的程序保持循环,直到满足某些条件,即选择了计算然后第一个值已经进入,然后是第二个。类似的东西:
static void Main(string[] args)
{
// main loop to keep your program alive
while (true)
{
// handle your program logic
}
}
答案 4 :(得分:0)
将您的代码放入do block
char c = '';
do
{
c = ...
}
while (c != 'q');
答案 5 :(得分:0)
你可以使用goto命令迭代技术中的任何一种函数调用不满意的同时或者执行while循环,通过infinte for loop