NO.7【婳骨】のif小测试

原题

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点回了家
考试有点炸
不过还是要打起精神来好好学的
毕竟也就只有这些了
要好好的呢
不然什么都做不到的哦

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值