题
原题
1.简述一下if语句的语法
2.连续判断时, if(){}else if(){}和if(){}if(){}的区别在哪里
作答
**一、**简述一下if语句的语法
1、 if(表达式)语句。
例如:if(x>y)printf("%d",x);
此时,如果表达式为真,则执行printf语句。
2、 if(表达式)语句1 else 语句2
例如:
if(x>y)printf("%d",x);
else printf("%d",y);
此时,如果x>y成立为真,则执行语句printf("%d",x),然后直接跳过else,同时也跳过语句printf("%d",y),去执行之后的语句。
如果x>y不成立为假,则不执行语句printf("%d",x),执行语句printf("%d",x)。
3、 if(表达式1)语句1
else if(表达式2)语句2
else if(表达式3)语句3
else if(表达式m)语句m
else 语句 n
此时,哪个表达式为真,则运行哪个if后面的语句。如表达式3成立为真,执行语句3。
在每个语句中,可以有多个语句,但需要加上大括号
例:if(x>y){printf("%d",x);break;}
**二、**连续判断时, if (表达式1) {语句1}
else if (表达式2) {语句2}
if 块和 else if 块本质上是互斥的
也就是说,一旦语句1得到了执行,程序会跳过 else if 块,else if 块中的判断语句以及语句2一定会被跳过;
同时语句2的执行也暗含了条件1判断失败和语句1没有执行;
当然还有第3个情况,就是条件1和条件2都判断失败,语句1和语句2都没有得到执行。
和
if() {}
if () {}
这种格式中,程序会依次判断条件1和条件2是否成立并根据结果决定是否执行语句1和语句2,
也就是说,第一个 if 块和第二个 if 块没有影响(除非在执行第一个 if 块的时候就 return 或者退出了)
代码
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <windows.h>
#define CRT_SECURE_NO_WARNINGS
int main();
int main()
{
int choice; //选项选择
int a = 2; //条件中已知的
int b = 0; //反馈结果
system("title 【婳骨】のif小测试");
printf("此时有三个不同条件:\n\ta == 1\n\ta == 2\n\ta%%2 == 0\n已知:\ta = 2即同时满足条件2与条件3\n");
printf("1、测试\tif(条件1){b == 1}\n\tif(条件2){b == 2}\n\tif(条件3){b == 3}\n");
printf("2、测试\tif(条件1){b == 1}\n\telse if(条件2){b == 2}\n\telse if(条件3){b == 3}\n");
printf("请输入1或2以完成测试\n");
choice = _getch();
while (1)
{
if (choice == 49) //对应'1'的ASCII码
{
printf("所选为1\n");
if (a == 1)
{
b = 1;
}
if (a == 2)
{
b = 2;
}
if (a % 2 == 0)
{
b = 3;
}
printf("b为%d\n故说明if if if 是依次执行的\n", b);
break;
}
else if (choice == 50) //对应'2'的ASCII码
{
printf("所选为2\n");
printf("所选为1\n");
if (a == 1)
{
b = 1;
}else if (a == 2)
{
b = 2;
}else if (a % 2 == 0)
{
b = 3;
}
printf("b为%d\n故说明if else if else if是执行成功一个后不执行其他的\n", b);
break;
}
printf("请输入1或2\n");
choice = _getch();
}
printf("程序结束");
system("pause");
return 0;
}
部分运行截图
另
在vs2019上关闭了安全检查
有一些跟CodeBlocks代码不通用的地方查了查
放假了,3号23点回了家
考试有点炸
不过还是要打起精神来好好学的
毕竟也就只有这些了
要好好的呢
不然什么都做不到的哦