switch 语句的使用(出现 switch quantity not an integer 报错后的思考与学习)

敲代码的时候遇到了报错:switch quantity not an integer。上网查了后才发现自己对 switch 语句的使用并不了解。

语法:

switch ( 常量表达式 )
{
case 常量1 :语句;
case 常量2 :语句;
case 常量3 :语句;
...
case 常量n:语句;
default :语句;
}

当常量表达式所表达的量与其中一个 case 语句中的常量相符时,就执行此 case 语句后面的语句,并依次下去执行后面所有 case 语句中的语句,除非遇到break;语句跳出switch语句为止。如果常量表达式的量与所有case语句的常量都不相符,就执行default语句中的语句并跳出switch语句。

需要注意的几点:

  1. 只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
  2. switch()的参数类型不能为实型 。
  3. case标签必须是常量表达式(constantExpression),如42或者’4’。
  4. case标签必须是惟一性的表达式;也就是说,不允许两个case具有相同的值。

试错

switch 里用实型报错:switch quantity not an integer
switch 语句的使用(出现 switch quantity not an integer 报错后的思考与学习)_第1张图片
switch 语句的使用(出现 switch quantity not an integer 报错后的思考与学习)_第2张图片
switch 里用字符串报错:switch quantity not an integer,如果用 C++ STL 里的 string 类型也是一样的,或者用其他的复杂类型也是报这个错。
switch 语句的使用(出现 switch quantity not an integer 报错后的思考与学习)_第3张图片
case 上用变量报错:the value of ‘n’ is not usable in a constant expression
switch 语句的使用(出现 switch quantity not an integer 报错后的思考与学习)_第4张图片
case 里的内容出现了重复报错:duplicate case value && previously used here
switch 语句的使用(出现 switch quantity not an integer 报错后的思考与学习)_第5张图片

你可能感兴趣的:(C/C++,C/C++语法)