无法将类型“字符串”隐式转换为“int”错误
本文关键字:字符串 转换 int 错误 类型 | 更新日期: 2023-09-27 18:31:16
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Assignment2
{
class Program
{
static void Main(string[] args)
{
int Value1,Value2,result,a;
Console.Write("Enter Value 1: ");
Value1 = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter Value 2: ");
Value2 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Choose an arithmetic operator:");
Console.WriteLine("'t1. +(add)");
Console.WriteLine("'t2. -(subtract)");
Console.WriteLine("'t3. *(multiply)");
Console.WriteLine("'t4. /(divide)");
Console.Write("'t5. %(mod)");
Console.Write("'n'n");
a = Convert.ToInt32(Console.ReadLine());
switch (a)
{
case"1":
Console.WriteLine("Operator is: Add");
result=Value1+Value2;
Console.WriteLine("Result: "+result);
break;
case"2":
Console.WriteLine("Operator is: Subtract");
result=Value1-Value2;
Console.WriteLine("Result: "+result);
break;
case"3":
Console.WriteLine("Operator is: Multiply");
result=Value1*Value2;
Console.WriteLine("Result: "+result);
break;
case"4":
Console.WriteLine("Operator is: devide");
result=Value1/Value2;
Console.WriteLine("Result: "+result);
break;
case"5":
Console.WriteLine("Operator is: mod");
result = Value1 % Value2;
Console.WriteLine("Result: "+result);
break;
}
}
}
}
我有基本的 C#,在完成编码后,我尝试制作一个可以使用 Case 语句运行 5 个算术运算的程序。我发现了5个让我卡住的错误。并且输出将始终带有 2 个结果(即我选择添加。并且会出现2个输出,同时加减。有人可以帮助我吗?
有问题的代码是你的案例陈述。 a
是一个int
.您的案例陈述都使用 string
s。只需删除数字周围的引号:
switch(a)
{
case 1:
// some code
break;
case 2:
// some code
break;
// rest of cases
}
您正在将a
转换为 int,但您的 switch 语句将其与字符串匹配。将其更改为case 1:
而不是case "1"
以解决问题。
删除引号以防万一。
将case "1":
替换为case 1: