从某个功能返回到开关箱



我是c#的新手,目前正在做一项任务,我必须创建一个具有switch情况的菜单,其中用户键入a、B、c或D,每个菜单要么转到华氏到摄氏的转换器,要么从硬币更改为数字模式,要么分别退出菜单。我刚刚完成了对华氏转换器的编码(希望是正确的(,但我需要回到开关的情况。

目前我的代码:

using System;    
using System.Collections.Generic;    
using System.Linq;    
using System.Text;    
using System.Threading.Tasks;

namespace cSharp_Assignment
{    
class Program
{
static void Main(string[] args)
{    
Console.WriteLine("Type A to go to Fahrenheit Converter");
Console.WriteLine("Type B to go to Coin Change");
Console.WriteLine("Type C to go to Number Pattern");
string menuChoice = Console.ReadLine().ToUpper();
switch (menuChoice)
{
case "A":
fahrenheitConverter();
break;
case "B":
break;
case "C":
break;
case "D":
break;
}
}
public static void fahrenheitConverter()
{
int Fahrenheit = 0;
Console.WriteLine("Insert a temperature in Fahrenheit");
Console.ReadLine();
int Celcius = ((Fahrenheit - 32) * (5 / 9));
Console.WriteLine("Celcius is: " + Celcius);                
}
}
}

添加一个while语句,其中包含您想要的退出条件,在您的情况下为中的"X">

while (menuChoice != "X")
{
switch (menuChoice)
{
case "A":
fahrenheitConverter();
break;
case "B":
break;
case "C":
break;
case "D":
break;
}
Console.WriteLine("Type A to go to Fahrenheit Converter");
Console.WriteLine("Type B to go to Coin Change");
Console.WriteLine("Type C to go to Number Pattern");
Console.WriteLine("Type X to exit");
menuChoice = Console.ReadLine().ToUpper();
}

你的主要应该是这样的:

static void Main(string[] args)
{
Console.WriteLine("Type A to go to Fahrenheit Converter");
Console.WriteLine("Type B to go to Coin Change");
Console.WriteLine("Type C to go to Number Pattern");
Console.WriteLine("Type X to exit");
string menuChoice = Console.ReadLine().ToUpper();
while (menuChoice != "X")
{
switch (menuChoice)
{
case "A":
fahrenheitConverter();
break;
case "B":
break;
case "C":
break;
case "D":
break;
}
Console.WriteLine("Type A to go to Fahrenheit Converter");
Console.WriteLine("Type B to go to Coin Change");
Console.WriteLine("Type C to go to Number Pattern");
Console.WriteLine("Type X to exit");
menuChoice = Console.ReadLine().ToUpper();
}
}

看看包含某种带有退出条件的循环。。。

我不会给你c代码,因为这看起来像是一个赋值,但这里是伪。。。

while (UpperCase(menuChoice)!="EXIT")
{
Console.WriteLine("Type A to go to Fahrenheit Converter");
Console.WriteLine("Type B to go to Coin Change");
Console.WriteLine("Type C to go to Number Pattern");
string menuChoice = Console.ReadLine().ToUpper();
switch (menuChoice)
{
case "A":
fahrenheitConverter();
break;
case "B":
break;
case "C":
break;
case "D":
break;
}
}

您可以再次调用main方法。这很容易。它应该起作用。但不推荐。希望这能有所帮助。当做

using System;    
using System.Collections.Generic;    
using System.Linq;    
using System.Text;    
using System.Threading.Tasks;
namespace cSharp_Assignment
{    
class Program
{
static void Main(string[] args)
{    
Console.WriteLine("Type A to go to Fahrenheit Converter");
Console.WriteLine("Type B to go to Coin Change");
Console.WriteLine("Type C to go to Number Pattern");
string menuChoice = Console.ReadLine().ToUpper();
switch (menuChoice)
{
case "A":
fahrenheitConverter();
break;
case "B":
break;
case "C":
break;
case "D":
break;
}
}
public static void fahrenheitConverter()
{
int Fahrenheit = 0;
Console.WriteLine("Insert a temperature in Fahrenheit");
Console.ReadLine();
int Celcius = ((Fahrenheit - 32) * (5 / 9));
Console.WriteLine("Celcius is: " + Celcius); 
Main(null); // Just call the main method here. This should work. But not recomended   
}
}

}

你非常接近。您所要做的就是再添加一个循环,例如

static void Main(string[] args) {
// Keep on working (execute switch case) ...
for (bool keepOnWorking = true; keepOnWorking;) {
Console.WriteLine("Type A to go to Fahrenheit Converter");
Console.WriteLine("Type B to go to Coin Change");
Console.WriteLine("Type C to go to Number Pattern");
Console.WriteLine("Type X to exit");
// Trim: let us be nice (what if user put/paste "A " or " B"?)
string menuChoice = Console.ReadLine().Trim().ToUpper();
switch (menuChoice) {
case "A":
fahrenheitConverter();
break;
case "B":
break;
case "C":
break;
case "D":
break;
case "X":
// ... until user press "X". Stop working 
keepOnWorking = false; 
break; 
}
}  
}

最新更新