
在C语言中有很多 *** 作符,我们也经常使用,但是否会有些细节了解不到位呢?
一 . if 和 else 1.1 if else语句if 是C语言中的条件语句,但它的逻辑是如何进行的呢?
int main()
{
int a = 1;
if (a)
{
printf("胡杨\n");
}
else
{
printf("树下\n");
}
return 0;
}
这里是先判断a 是否为真才进行下一步 *** 作的。
那么就引出几个问题。
1.什么是真?
真,是逻辑上表述。
1是真,但真不仅仅是1,而是非0。
那么很明显,
假就是0。
2 .怎么表示真?
一般用布尔型常量的值表示真或假。
3.C语言中有没有真正的布尔型常量呢?
在C语言上在C99才引入布尔型变量这一说法,之前都是在C++中有布尔行变量。
而在C99中引入布尔常量,引用 所以说在C99之后才有布尔型常量,在之前是没有的。 刚才已经说过了if,下面是跟if经常一起使用的else,重点说一下if else实现 上面说过了,if是先判定在进行 *** 作,单独的if是没有分支功能的,需要else匹配使用才有分支功能。 这是单分支,那么多分支呢?那么就需要另一个东西了,叫else if(条件),实现多分支。 需要注意的是else if后要加条件,else是不加条件的。 先看一个代码猜猜看 相信你一定有答案了,没错,就是输出world,虽然else是和第一个f(10 == a)对齐,但是else会与最近的if匹配在一起,所以修改代码格式后变为了下面的样子。
switch语句常常用来判断多分支情况,但是switch是没有能力进行分支的,这就需要另一个关键词 case 来进行分支,请看下面代码。 这个代码能输出你想要的结果吗?,结果是不能,它会输出从星期一到星期日。 而不会,分情况输出,为什么呢?这就要说下break关键词了。 switch是对条件的判断,来决定去哪个case进去,而case只是一个入口,没办法决定出口,那就需要break来让数据“请”出去了。 这样才是你想要的样子,但是如果day是8呢?会走哪个case口呢?答案是会直接跳出程序,什么也不打印。 default在switch…case句块中的意思是缺省情况,它表示在没有参数被 但是建议写上是自己有个良好的代码风格。 另外不要再default中加入其他的功能。 这里default中打印了星期日,功能也能实现,但是不推荐这样写,default表示默认选项,而星期日不是默认选项。 另外,default字句可以再任何地方。 一个case必须要break吗?不是这样的,可以有多个case匹配一个的场景。 说完switch和if后对比一下,switch和if都先进行判断,都没有分支过功能其中if要和else if一起才有分支功能,而switch则是通过case进行分支功能。 这还是很相似的。 至于用谁好点呢?看分支情况了,另外case后的小数字,可以 明天会更新const, static的内容(未完待续。 。 。 ) 欢迎分享,转载请注明来源:内存溢出
1.2 if else实现分支循环
#define bool _Bool//库里面定义
#define false 0
#define true 1
int main()
{
_Bool a = true;
_Bool b = false;
if (b)
{
printf("hello world\n");
}
}
单分支循环和多分支循环,下面是实现单分支int main()
{
int a = 1;
if (a == 1)
{
printf("嗨,帅哥\n");
}
else
{
printf("你好,美女\n");
}
return 0;
}
int day = 7;
if (day >= 1 && day <= 5)
{
printf("星期一\n");
}
else if (6 == day)
{
printf("星期六\n");
}
else if (7 == day)
{
printf("星期日\n");
}
else
{
printf("输入错误");
}
tip 1:
else if (day == 7),不推荐这样写,如果少写一个=就会变成赋值,
推荐写成else if(7 == day)如果写错,编译器就会报错,(非常友好)* int a = 10;
int b = 1;
if (10 == a)
if (11 == b)
printf("hello\n");
else
printf("world\n");
int a = 10;
int b = 1;
if (10 == a)
{
if (11 == b)
{
printf("hello\n");
}
else
{
printf("world\n");
}
}
二 .switch case break default
2.1 .switch
tip 2: 好的代码风格会是阅读者省心省力,也不会导致自己看的时候迷茫。 int day = 7;
switch(day)
{
case 1:
printf("星期一\n");
case 2:
printf("星期二\n");
case 3:
printf("星期三\n");
case 4:
printf("星期四\n");
case 5:
printf("星期五\n");
case 6:
printf("星期六\n");
case 7:
printf("星期天\n");
}
int day = 7;
switch(day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
case 7:
printf("星期天\n");
break;
}
提供的时候,执行defalut块中的语句,如果不写也是会跳出的。
例如 int day = 8;
switch (day)
{
case 1:
printf("星期一\n");
break;
case 2:
printf("星期二\n");
break;
case 3:
printf("星期三\n");
break;
case 4:
printf("星期四\n");
break;
case 5:
printf("星期五\n");
break;
case 6:
printf("星期六\n");
break;
default:
printf("星期日\n");
break;
}
例如
2.5 switch 和if对比
int day = 5;
switch (day)
{
case 1:
case 2:
case 3:
case 4:
case 5:
printf("工作日\n");
case 6:
case 7:
pruintf("休息日\n");
break;
default:
printf("数字无效\n");
break;
}
用enum枚举常量代替,提高代码可读性哦。
这是第一篇博客,有不好的地方,希望大佬多多指教,互关哦。
微信扫一扫
支付宝扫一扫
评论列表(0条)