switch与case语句,switch case语句的用法
c语言switch case语句是什么?
switch (表达式)
{
case 常量表达式1:语句1
case 常量表达式2:语句2
......
case 常量表达式n:语句n
default:语句n+1
}
执行过程:
1、首先计算“表达式”的值,假设为m。
2、从第一个case开始,比较“整型数值1”和m,如果它们相等,就执行冒号后面的所有语句,也就是从“语句1”一直执行到“语句n+1”,而不管后面的case是否匹配成功。
3、如果“整型数值1”和m不相等,就跳过冒号后面的“语句1”,继续比较第二个case、第三个case……一旦发现和某个整型数值相等了,就会执行后面所有的语句。假设m和“整型数值5”相等,那么就会从“语句5”一直执行到“语句n+1”。
4、如果直到最后一个“整型数值n”都没有找到相等的值,那么就执行default后的“语句n+1”。
遵守switch语句规则
任何switch语句都必须遵循以下规则:
1、只能针对基本数据类型中的整型类型使用switch,这些类型包括int、char等。对于其他类型,则必须使用if语句。
2、switch()的参数类型不能为实型 。
3、case标签必须是常量表达式(constantExpression),如42或者'4'。
4、case标签必须是唯一性的表达式;也就是说不允许两个case具有相同的值。
c语言switch case语句例子是什么?
c语言switch case语句例子是:
#include
int main(void){
int a;
printf("input integer number: ");
scanf("%d",a);
switch (a){
case 1:printf("Monday\n"); break;
case 2:printf("Tuesday\n"); break;
case 3:printf("Wednesday\n"); break;
case 4:printf("Thursday\n"); break;
case 5:printf("Friday\n"); break;
case 6:printf("Saturday\n"); break;
case 7:printf("Sunday\n"); break;
default:printf("error\n");
}
return 0;
}
程序解读:
本程序是要求输入一个数字,输出它对应的星期的英文单词。
注意项:
1、在case后的各常量表达式的值不能相同,否则会出现错误。
2、在case后,允许有多个语句,可以不用{}括起来。
3、各case和default子句的先后顺序可以变动,而不会影响程序执行结果。
4、default子句可以省略不写。
c语言switch case语句例子有哪些?
switch语句中使用的表达式必须具是int或enum类型,否则如float等其他数据类型是无法通过的编译的,因为编译器需要switch后面的语句和case后面的值精确匹配,而计算机无法精确表达一个float数据类型。
switch可以任意个case语句(包括没有), 值和语句之间使用:分隔。
case后面的值必须是int常量值,或者返回结果为int类型的表达式,以下代码无法编译通过。
当switch后面的变量值和case后面的常量值匹配相等后,case后面的代码将会被执行,直到break语句被执行后跳出switch代码块。
break不是必须的,如果没有break,则执行完当前case的代码块后会继续执行后面case代码块的内容,直到执行break才可以退出。
switch有一个默认的情况,我们用default关键词表示,当switch后面的变量和所有case后面的常量都不匹配的情况下,默认执行default后面的语句。
关于switch case语句
单引号括起1个字符的叫字符常量。例如:'f','i','l'。 你用了2个字符。程序会略去一个字符,只用1个。
char ch; 只能存放1个字符。 输入语句一次读入1个字符。 fifffffl 含8个字符。
你可以改用 scanf("%*1c%c",ch); 的读法,略去1个字符,读1个字符。即 fi,ff ,fl 略去 前面的 f, 读入 i,f,l 。 拍入 a 表示输入结束。
#includeiostream
using namespace std;
#includestdio.h
main(){
int ffCnt=0,flCnt=0,fiCnt=0;
char ch;
while ( 1 )
{
scanf("%*1c%c",ch); //输入语句
if (ch=='a') break; //拍入 a 结束循环
switch (ch)
{
case 'f': ++ffCnt; break;
case 'l': ++flCnt; break;
case 'i': ++fiCnt; break;
default: break;
}
}
cout"ff:... "ffCntendl;
cout"fl:... "flCntendl;
cout"fi:... "fiCntendl;
return 0;
}