【问题标题】:C language - Can I use char for switch beside number in cases?C 语言 - 我可以在案例中使用 char 在数字旁边进行切换吗?
【发布时间】:2020-05-15 20:30:27
【问题描述】:

我想让用户输入 + 或 - 或 * 或 / 但我不知道如何在 switch 中使用它们,所以我必须让用户输入数字来表示算术符号,如 1 表示 + 2 表示 - 等等。 ..这样我就可以使用switch了。

【问题讨论】:

  • 我认为您需要重写问题 - 也提供您尝试过的内容

标签: c char switch-statement


【解决方案1】:

你可以。例如

char c = '+';

switch( c )
{
case '+':
    puts( "Plus" );
    break;
case '-':
    puts( "Minus" ); 
    break;
default:
    puts( "Unknown operation" );
    break;
}

根据 C 标准(6.8.4.2 的 switch 语句)

3 每个case标签的表达式为整数常量 表达式 并且没有两个 case 常量表达式在同一个 switch 语句在转换后应具有相同的值。也许有 在 switch 语句中最多是一个默认标签。 (任何封闭 switch 语句可能有默认标签或大小写常量表达式 具有在封闭中重复大小写常量表达式的值 switch 语句。)

字符文字是整数常量。

【讨论】:

  • @MichaelDorgan 很奇怪,因为我的网速很慢。:)
  • 非常感谢你们!所以只要我把char放在单引号里,它就可以在switch中充当整数吗?
  • @AZINEZ 是的,字符文字可以用作大小写标签。
【解决方案2】:

这是一个非常快速和肮脏的例子:

char a='+';  

switch(a) 
{
    case '+' : //do plus stuff;
      break
    case '-' : //do minus stuff;
      break;
    default:  // Say illegal input or whatever;  
      break;
}

【讨论】:

    猜你喜欢
    • 2011-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-26
    • 2014-04-20
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    相关资源
    最近更新 更多