switch语句不起作用。 C#

时间:2016-02-17 22:47:54

标签: c#

我运行我的代码但是当它进入switch语句时它不执行它并从程序中退出。 在switch语句中,当用户按1时,它将进行加法,2进行减法,依此类推。 我无法理解错误。

int c; c = 0;
int a;
int b;

Console.Write Line("Enter First Number");
a = Convert.ToInt16(Console.Read Line());
Console.Write Line("Enter First Number");
b = Convert.ToInt16(Console.Read Line());
Program k = new Program();
k.display();
switch(c)
{
    case 1 :
    {
        Console.Write Line("Answer is {0}",k.add(a,b));
    }
        break;
    case 2:
    {
        Console.Write Line("Answer is {0}", k.sub(a,b));
    }
        break;
    case 3:
    {
        Console.Write Line("Answer is {0}", k.prod(a, b));
    }
        break;
    case 4 :
    {
        Console.Write Line("Answer is {0}", k.divide(a, b));
    }
        break;
    default:
        {
            Console.Write Line("Enter Valid value");
        }
        break;
}
    Console.Read Key();
}


public void display()
{
    Console.Write Line("Menu");
    Console.Write Line("1.Add");
    Console.Write Line("2.Subtract");
    Console.Write Line("3.Multiply");
    Console.Write Line("4.Divide");
    Console.Write Line("5.Modulus");
}
public int add(int x, int y)
{
    int sum;
    sum = x + y;
    return sum;
}

public int sub(int x, int y)
{
    int subtract;
    subtract = x - y;
    return subtract;
}

public int prod(int x, int y)
{
    int p;
    p = x * y;
    return p;
}

public int divide(int x, int y)
{
    int div;
    div = x / y;
    return div;
}

4 个答案:

答案 0 :(得分:4)

您没有在c

中添加值

添加以下代码来执行此操作:

Console.WriteLine("1 = Add, 2 = Subtract, 3 = Multiply, 4 = Divide");
c = Convert.ToInt16(Console.ReadLine());

您的休息语句也需要在括号内:

case 1 :
{
    Console.WriteLine("Answer is {0}",k.add(a,b));
    break;
}

您的Write LineRead Line语句需要转换为单个字WriteLineReadLine

这段代码真的很乱。你是用Microsoft Word写的吗?

答案 1 :(得分:2)

查看变量c。当代码通过时,它总是为零。您需要在某处使用变量c

答案 2 :(得分:0)

当您的原始代码中的break超出case

时,您何时会期望它达到第二个案例陈述?
switch(c)
{
    case 1 :
    {
        Console.WriteLine("Answer is {0}",k.add(a,b));
    }
        break;
    case 2:
    {
        Console.WriteLine("Answer is {0}", k.sub(a,b));
    }
        break;
    case 3:
    {
        Console.WriteLine("Answer is {0}", k.prod(a, b));
    }

答案 3 :(得分:0)

首先,要执行该操作,需要让用户提供输入。我已经在下面粘贴了您的代码。 variable c已声明,但用户从未输入过任何输入;始终为0。

int c = 0;
int a;
int b;

Console.Write Line("Enter First Number");
a = Convert.ToInt16(Console.Read Line());
Console.Write Line("Enter First Number");
b = Convert.ToInt16(Console.Read Line());
Program k = new Program();
k.display();
switch(c)

您不是在要求用户输入变量int c的输入。

您可以执行以下操作:

Program k = new Program();
k.display(); // Once it displays
c = Convert.ToInt16(Console.ReadLine());
switch(c)
{ /*your code*/ }