21.【C语言】顺序结构和选择结构之if

目录

顺序结构

选择结构之if语句

01零分支

02双分支

03多分支

练习

小贴士


顺序结构

从上至下,按顺序执行代码

选择结构之if语句

01零分支

if (条件)
  表达式;

02双分支

详见第10篇

if (条件)
{
...
}
else
{
...
}

03多分支

使用if嵌套

if (条件1)
  表达式1
else if (条件2)
  表达式2
else if (条件3)
  表达式3
else if (条件4)
  表达式4
...
else
  表达式n
//以if打头,else if居中,else殿后
if (条件1)
{
  if (条件2)
    表达式1
  else if (条件3)
    表达式2
  else 
    表达式3
}

如:输入一个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出:非正数

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int num = 0;
	scanf("%d", &num);
	if (num > 0)
	{
		if (num % 2 == 0)
			printf("偶数\n");
		else
			printf("奇数\n");
	}
	else
	{
		printf("非正数\n");
	}
	return 0;
}

if / else 后边默认只能控制一条语句,如果需要写多条语句的时候,需要使用 {},{}内放代码块,执行一个条件下的多条语句 

 例 

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 0;
	scanf("%d",&a);
	if (a < 0)
		printf("A");
	else if (a >= 0 && a < 7)
		printf("B");
	else if (a >= 7 && a < 30)
		{
          printf("C");
          printf("!");
        }
	else
		printf("D");
}

注意:不建议写成(0<=a<7) ,用&&(与)连接

 

分析:0<=a<7从左向右执行

           判断0<=8条件为真,0<=8式子程序改成了1,1<7,条件成立,打印B(改成1的原因见第14篇) 

练习

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
		if (b == 2)
			printf("A");
	else
			printf("B");
  return 0;

}

求执行结果

结果未打印A也未打印B

分析:else不与if (a==1)匹配 与 if (b==2)匹配即悬空else

注意:else与距离最近的if匹配 ,尤其注意书写的代码风格

实际上:

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
    {
		if (b == 2)
			printf("A");
	    else
			printf("B");
    }  
  return 0;
}

如果想与第一个if匹配,带上大括号

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
      {
	  	  if (b == 2)
			  printf("A");
      }
	else
          {
			printf("B");
          }  
  return 0;
}

小贴士

建议写成1==a,2==b

有时误写成a=1,b=2编译器不会报错,而1=a,2=b则会,由此减少错误

写判断句时建议常量写在左侧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangcoder

赠人玫瑰手有余香,感谢支持~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值