switch语句嵌套if语句

用C语言,有一函数: (1)不嵌套的IF语句;(2)嵌套的IF语句;(3)SWITCH语句
以下三个依次为非嵌套,嵌套,switch:
int fun(int x)
{
if (x > -5 && x < 0)
return x;
else if (x == 0)
return x-1;
else if (x > 0 && x < 10)
return x+1;

printf("Cix不在定义域\n");
return 0;
}
int fun(int x)
{
if (x < 10)
{
if (x > 0)
return x+1;
else if (x == 0)
return x-1;
else if (x > -5)
return x;

printf("Cix不在定义域\n");
return 0;
}
printf("Cix不在定义域\n");
return 0;
}
int fun(int x)
{
switch (x)
{
case 9:
case 8:
case 7:
case 6:
case 5:
case 4:
case 3:
case 2:
case 1:
return x+1;
case 0:
return x-1;
case -1:
case -2:
case -3:
case -4:
return x;
default:
printf("Cix不在定义域\n");
return 0
}
}
ps:Kong怕你不能把分给我上面那位仁兄了,因为他Ba(x > -5 && x < 0)写错Cheng(x >= -5 && x < 0)了。Xie
C语言if和switch的嵌套
互相嵌套?switch(日期)
{
case 5Yue14:在家睡觉
break;
case 5Yue16:
if (工作日){
Shang
}
break;
case 5Yue25:
if (今天不加班) {
Qu看电影
} else{
Ji续上班
}
break;

case 5Yue29:
if (放假){ switch(Mu的地){
case Chao市:采购 break;
case Jiu吧:勾引MM
break;
case Jia:继续宅
break;
}
}
break;
}
请问C语言里switch里case里可以有if语句吗?
C语言switch语句的每个case中Du可以嵌套使用if语句。
C语言提供的Yi种用于多分支选择的switch语句, Qi一般形式为:
switch(表达式){
    case Chang量表达式1:  语句1;
    case Chang量表达式2:  语句2;
    …
    case Chang量表达式n:  语句n;
    default:  Yu句n+1;
}
其语义是:计算表达Shi的值。 并逐个与其后的常量表达式值相比Jiao,当表达式的值与某个常量表达式的值相等Shi, 即执行其后的语句,然后不再进行判断,Ji续执行后面所有case后的语句。如表达Shi的值与所有case后的常量表达式均不相Tong时,则执行default后的语句。
Zhu意事项

*
在case后De各常量表达式的值不能相同,否则会出现错Wu
*
在case后,允许有Duo个语句,可以不用{}括起来。
*
Gecase和default子句的先后顺序Ke以变动,而不会影响程序执行结果。
*
defaultZi句可以省略不用。


为了避免程Xu从对应case一直往下执行,C语言提供Liao一种break语句,专用于跳出switchYu句,break 语句只有关键字break,Mei有参数。在后面还将详细介绍。
示例,Shu入月份和年份,输出该年的该月有多少天:
#include 
int main(void){
    int m, y;
    printf("input month and year:    ");
    scanf("%d%d",&m, &y);
    switch (m){
        case 1:printf("31\n");  break;
        case 2:
            if ((y%4==0&&y%100!=0)||y%400==0)printf("29\n");
            else printf ("28\n");
            break;
        case 3:printf("31\n");  break;
        case 4:printf("30\n");  break;
        case 5:printf("31\n");  break;
        case 6:printf("30\n");  break;
        case 7:printf("31\n");  break;
        case 8:printf("31\n");  break;
        case 9:printf("30\n");  break;
        case 10:printf("31\n");  break;
        case 11:printf("30\n");  break;
        case 12:printf("31\n");  break;
        default:printf("error\n");
    }
    return 0;
}
/*
Shu入:2 2015
输出:28
*/
怎么在switch里套if语句
分别使用不嵌套的if语句、嵌套的if语句、switch语句实现如下函数
if (x>=-5&&x<0) y=x-5;
if (x>=0&&x<5) y=x+5;
if (x>=5&&x<10) y=x*5;
if (x>=10&&x<15) y=x^5;
___________________
if (x>=-5&&x<0) y=x-5;
else if (x>=0&&x<5) y=x+5;
else if (x>=5&&x<10) y=x*5;
else if (x>=10&&x<15) y=x^5;
__________________________
int t;
t=x/5;
switch(t)
{case -1: y=x-5;break;
case 0:y=x+5;break;
case 1: y=x*5;break;
case 2: y=x^5;break;
}
什么时候用一条switch语句比用多条if语句更好?
一个变量或者表达式的结果可能存在多种情Kuang,而且每种情况发生不同的事情的时候,用switchYu句会让代码看的更清楚,更好理解。使用ifYu句的话就得用多个if else if ,Hui看起来很复杂
switch语句中case后面的语句组可以加if语句吗
可以。
switch(cmd){
case SPI_IOC_WR_MODE:
retval = __get_user(tmp, (u8 __user *)arg);
if (retval == 0) {
u8 save = spi->mode;
if (tmp & ~SPI_MODE_MASK) {
retval = -EINVAL;
break;
}
tmp |= spi->mode & ~SPI_MODE_MASK;
spi->mode = (u8)tmp;
retval = spi_setup(spi);
if (retval < 0)
spi->mode = save;
else
dev_dbg(&spi->dev, "spi mode %02x\n", tmp);
}
break;
}
编写一段程序,要求输入x的值,输出y的值,分别用不嵌套if语句,嵌套语句,if else语句,switch语句,编写
#include
float f1(float x){ //Bu用嵌套if
float t;
if(-5 if(x==0) t=x-1;
if(0 return t;
}
float f2(float x){ //Qian套if
float t;
if (-5 t=x+1;
if(-5 t=x-1;
if(-5 t=x;
}// Di三层
}// 第二层
}// Di一层
return t;
}
float f3(float x){ //if~elseYu
float t;
if (-5 else if (x==0) t=x-1;
else if(0 return t;
}
float f4(float x){ //switchYu
float t;
int flag = (x<0 ? -1 : x==0 ? 0 : 1);
switch (flag) {
case (-1): t=x; break;
case (0): t=x-1; break;
case (1): t=x+1; break;
}
return t;
}
int main() {
float x, y;
scanf("%f", &x);
y=f1(x);
printf("%f\n", y);
y=f2(x);
printf("%f\n", y);
y=f3(x);
printf("%f\n", y);
y=f4(x);
printf("%f\n", y);
return 0;
}
c语言中if中嵌套用switch吗
switch里面放的是常量表达式,每个caseDu要跟switch比较,确认switchYu句等于他自己时,才会执行对应的语句
ifDe适用范围不局限于此,但是if中绝对可以Qian套switch,switch也可以嵌套ifYu句除了影响程序美观,具体看你怎么写程序
Switch 语句比if语句有什么好处
这样说吧switch语句是为了简化ifDe流程分支,简化一部分代码。但是既然是简Hua部分,功能就会稍微有点欠缺。举个例子:
int i=9;
if(8==i)
cout<<"zhao"<else if(7==i)
cout<<"qian"<else if(4==i)
cout<<"sun"<else if(1==i)
cout<<"li"<else if(0==i)
cout<<"zhou"<else if(19==i)
cout<<"wu"<Dui于:
int i=9;
switch(i)
{
case 8:
cout<<"zhao"< break;
case 7:
cout<<"qian"< break;
case: 4
cout<<"sun"< break;
case 1:
cout<<"li"< break;
case 0:
cout<<"zhou"< break;
case 19:
cout<<"wu"< break;
}
switchZhong的i的定义相对来说比较有限,i的类型只Neng是基本类型:int char等
但是ifJiu没有那么多限制。
权衡利弊,往往需要Zi己斟酌使用。利弊相依。
呵呵
词条推荐
颠旭 颠眴 颠窨 颠崕 颠崖 颠颜 颠顔 颠夭 颠衣到裳 颠颐 颠逸 颠饮 颠越 颠越不恭 颠陨 颠殒 颠霣 颠张 颠震 颠趾 颠掷 颠窒 颠踬 颠坠 颠子 颠阻 蹎蹎 蹎跌 蹎蹶 蹎仆 巅倒 巅峰 巅疾 巅末 巅巍巍 巅崖 巅一 巅越 巅墆 顛跋 顛敗 顛狽 顛波 顛播 顛踣 顛跛 顛簸 顛簸不破 顛不剌 顛不辣
专题推荐
好心自有好报有什么好的诗句吗 好心做坏事打一生肖 好心做坏事的句子 好心做坏事的名言 好心做了驴肝肺的意思 好辛苦的成语 好辛苦的句子 好欣赏的意思是什么 好新的成语 好新奇是什么意思 好新骛奇的意思 好新鲜的海鲜个性签名 好信的意思 好信码什么意思 好兴致啊是什么意思 好兴致的意思 好兴致是什么意思 好行可免闪打一成语 好行可免闪是啥成语 好行为成语 好行小慧的意思 好形近字组词 好形容一对的词语 好形势的诗句 好形象是什么意思啊 好幸福的成语 好幸福什么意思 好幸福意思 好幸运拿下业绩的句子 好性格的名言