Console.WriteLine(used+ "\n"+ extracted[used]);
switch (extracted[used])
{
case "*": result = number1 * number2; break;
case "/": result = number1 / number2; break;
case "+": result = number1 + number2; break;
case "-": result = number1 - number2; break;
default: Console.WriteLine("Error - Could not assign starting value."); break;
}
Console.WriteLine("Marker 3");
Console.WriteLine(result);
此代码段产生输出:
1
+
错误 - 无法分配起始值。
标记 3
0
为什么会这样?在输出的第二行,程序打印出 extracted[used] 的值为“+”,但 switch 语句未能转到 case“+”,而是转到 default,并打印出错误,以及然后打印出“结果”的占位符值。如果重要的话,提取的是一个字符串数组。
最佳答案
尝试切换extracted[used].Trim()
,你会得到正确的开关。
Console.WriteLine(used+ "\n<<<"+ extracted[used] + ">>>");
switch (extracted[used].Trim())
{
case "*": result = number1 * number2; break;
case "/": result = number1 / number2; break;
case "+": result = number1 + number2; break;
case "-": result = number1 - number2; break;
default: Console.WriteLine("Error - Could not assign starting value."); break;
}
Console.WriteLine("Marker 3");
Console.WriteLine(result);
关于c# - 打开字符串会跳过所有情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6967522/