(2020.9.6)
如果条件成立,要执行多条语句,应该怎么使用代码块?
(一个大括号就是一个代码块)
if或者else语句如果要执行多条语句必须用大括号
if (age < 10)
printf("未成年\n");
print("不能谈恋爱\n");(这样不行)
if (age < 10)
{ printf("未成年\n");
print("不能谈恋爱\n");
}(必须用大括号括起来)
-------------------------分割线--------------------------------------------------
以下代码运行结果为无,并没有输出haha,原因在于:
else是如何匹配if的呢?
else是与离它最近的未匹配的if匹配的
int main()
{int a = 0;
int b = 1;
if (a == 1)(两个等号==表示为判断相等)
{ if (b == 2)
printf("hehe\n");}
else
printf("haha\n");
return 0;}
(如果想让else与第一个if匹配,则把第二个if用大括号括起来)
要写好代码风格,也可以将需要的else和if用大括号括起来
------------------------分割线---------------------------------------------------
int num = 4;
if (num = 5)
{
printf("hehe\n");
}
这段代码可以打印hehe,因为一个等号代表赋值,两个等号==表示为判断相等。所以num被赋值为5了
以下为建议的写法:
int num = 4;
if (5==num)(更加容易发现问题,是好的代码风格,5为常
{ 量)
printf("hehe\n");
}
(这样即使少了一个等号也不会出bug)
所以:未来如果比较常量与变量时,将常量放在前面
------------------------------------------------------------------------------------练习:
1.判断一个数是否为奇数
2.输出1~100之间的奇数(需要用到while循环而不是if循环)
1.
int a = 5;
if (a % 2 == 1)
printf("该数为奇数");
else
printf("该数为偶数");
2.
int a = 1;
while (a < 101)
{
if(a%2==1)
{
printf("%d\n", a);}
a++;
}
return 0;
}
-------------------------------------------------------------------------------------------------------------------------------------
switch语句:专门用来实现多分支的情况
int day = 0;
scanf_s("%d", &day);(输入一个值,并且取地址)
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;
}
switch()括号里面放一个整型表达式,这个整型表达式结果是几,它就从case几进去,记住后面要加上break,case决定入口,而break决定出口
注意:
switch后边的)括号里面放一个整型表达式,不能写float day=0.0
------------------------------------------------------------------------------------语法:
switch(整型表达式)
{
语句项;(语句项是一些case语句)
}
一些case语句:
case 整型常量表达式:
语句;