求助:C/C++中switch case的用法!

语言规定在case标号后面必须是一个常量表达式。

那么如果我想要做这样一道题,90--100分输出‘A’,80--90分输出‘B’... ...

那么我的case标号后面该怎样写表达式?比较这样有一定范围的数字不可能一一列出。而case标号又规定必须用常量,那么该怎样写呢?

switch语法格式如下:

switch(表达式){ 

    case 常量表达式1:  语句1; 
    case 常量表达式2:  语句2;
    … 
    case 常量表达式n:  语句n;
    default:  语句n+1;
}


示例代码:

#include <stdio.h>
int main()
{
    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;
}

在使用switch语句时应注意以下几点:

1.每个case后的语句执行完成后,都应该有break语句;否则程序会顺序执行下面的case,直到遇到第一个break时跳出。

2.在case后的各常量表达式的值不能相同,否则会出现错误。

3.在case后,允许有多个语句,可以不用{}括起来。

4.各case和default子句的先后顺序可以变动,而不会影响程序执行结果。

5.default子句可以省略不用。

温馨提示:内容为网友见解,仅供参考
第1个回答  2007-08-26
把这一定范围的 条件 转换成 一个常量。

如:

int fenshu; //代表分数

int biaohao //标号

baiohao=fenshu/10;

switch(biaohao)
{
case 10 :
printf("A");
break;
case 9:
printf("A");
break;

}本回答被提问者采纳
第2个回答  2007-08-26
可以不用case啊

int iFenShu ;

...

if ( iFenShu >= 90 && iFenShu <= 100 )
{
//输出A
}
else if ( iFenShu >= 80 && iFenShu < 90 )
{
//输出B
}
...

如果非用case ,可以这样写

switch( iFenShu )
{
case 100:
case 99:
case 98:
...
case 90:
// 输出A
break; //省略了九个break

...

}
相似回答