c语言的switch只能识别字符类型吗?

如图:switch中选择识别ch,就会输出成功。

识别num,就会输出失败。

 

你的代码中case '1/a'是不对的,1/a不是一个字符,是一个字符串。在switch(num/ch)中,编译器会把ch转成int类型,然后  计算num除以ch的值,然后用这个值去找case,case后面需要int类型。不是你想的拼接字符串。

(在你的代码中,ch=‘a’,转成int类型就是97,num=1,num/ch的值是0(1/97取整=0),所以swith(num/ch)会去找case 0:这个代码块来执行。)

 

switch的用法如下:

int num; //根据需要给num赋值
char ch; //根据需要给ch赋值
switch(num)
{
case 1:
	break;
case 2:
	break;
}

switch(ch)
{
case '1':
	break;
case '2':
	break;
default:
	break;
}

switch case 只能识别整数类型

你用的啥编译器,这代码都能编译通过

同意楼上所说,case中能用于==整数识别,其他一都不行,>=,<=都不可以的.