【零基础搞定C语言】——分支语句

前言:本篇文章带领大家开始学习C语言,由于CSDN上优质的C语言文章有很多,加上笔者平时课程、竞赛比较忙,所以我们直接从分支语句开始吧(笔者用心书写,希望读者看到最后,相信会有所收获)

目录

1.什么是语句

2.控制语句

 3.分支语句(选择结构)

3.1 if语句

3.2 switch语句


1.什么是语句

C语言中语句可分为以下五类:

1.表达式语句

2.函数调用语句

3.控制语句

4.复合语句

5.空语句

这里给大家举一些例子,什么是表达式语句呢,顾名思义,就是表达式再加上一个';'构成的语句,像  2+3;(算术表达式)  int a = 0; (赋值表达式)  x>0&&x<10;(逻辑表达式)等等。函数调用语句也很简单,就是先创建一个函数,再调用这个函数所用的语句,比如:我们创建了一个求两个整数的和的函数,如下:

int Add(int x,int y)
{
   return x+y;
}

然后我们对这个函数进行调用,下面这个语句就是函数调用语句。

Add(2,3);

至于控制语句,本篇文章所写的分支语句以及后面要学习的循环语句,转向语句都属于控制语句。

复合语句是由一系列语句组成的,它们放在一对大括号中形成一个整体。基本形式如下:

{
语句1;
语句2;
;
;
语句n;
}

由于C语言中单条语句都以 ';' 作为结束的标志,空语句当然就是只有一个分号了。

2.控制语句

控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),程序源自于生活,大家可以想想看我们生活中要做的事情是不是就只有这三种情况呢,我们做一件事可以就按照步骤来,一步一步做,从头做到尾,这不就是顺序结构吗?同样,我们在做一件事的时候可能会面临选择,不同的选择导向了不同的结果,当然有些事情比如说吃饭、睡觉还有学习哈是需要我们每天都去做的,这正是循环结构。

C语言有九种控制语句,可分成以下三类:
1. 条件判断语句也叫分支语句:if语句、switch语句;
2. 循环执行语句:do while语句、while语句、for语句;
3. 转向语句:break语句、goto语句、continue语句、return语句。

 

 3.分支语句(选择结构)

3.1 if语句

if 语句的语法结构如下,大家写C语言的语句一定要按照它的语法结构来哦

//单分支

if(表达式)
  语句;
//双分支
if(表达式)
  语句1;
else
  语句2;
//多分支  
if(表达式1)
  语句1;
else if(表达式2)
  语句2;
else
  语句3;

 if 后面括号中的表达式如果为真则执行下面的语句,如果为假,对于单分支则什么都不会发生,对于双分支,则执行 else 语句,对于多分支,则开始判断 else if 后面括号中的表达式是否为真,如果为真,则执行 else if 后面的语句,如果仍为假,则执行 else 语句。

这里要注意 C语言中,0为假,非0为真, -1也为真哦,不要想当然。同时 if , else if , else  默认只能控制一条语句,如果它们需要控制多条语句,多条语句要用 { } 括起来,同时 else 是离它最近的 if 进行匹配,大家可以看看下面的代码,想想最后打印什么

#include <stdio.h>
int main()
{
	int a = 0;
	int b = 2;
	if (a == 1)
	{
		if (b == 2)
			printf("hehe\n");
	}
	else
	{
		printf("haha\n");
	}
	
	return 0;
}

这道题故意将 else 与第一个 if 进行匹配,来干扰大家,实际上,else 是与 if (b ==2)这个 if 匹配的,所以这道题,由于 a = 0,! = 1,表达式为假,直接执行 else 后面的语句,最后打印haha.所以我们在编写程序时,一定要注意语句的书写规范。

教大家一个小技巧,不少小伙伴刚学 if 语句时,都喜欢犯这个错,比如我们在写 if(num == 5) 时很容易错写成 if(num = 5),将 等于 错写成了 赋值 ,导致 if 后面的条件恒为真,使得程序不能达到想要的效果,所以我建议这里在书写时最好写成 if (5 == num),由于5是常量,常量无法被赋值,所以即使我们不小心写成了赋值,由于语法错误,编译不能通过,程序也就不会乱跑了。

3.2 switch语句

语法结构如下:

switch(整型表达式)//注意这里必须是整形表达式
{
  语句项;
}

语句项: 

case 整型常量表达式://这里也必须是整型常量表达式
  语句 

switch 和 case 用于实现多分支结构,但要实现分支,必须要搭配 break; 举个简单的例子

#include <stdio.h>
int main()
{
  int day = 0;
  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;
 }
  return 0;
}

输入1~7,即可打印星期一 ~星期天。

下面介绍 default 子句
如果表达的值与所有的case标签的值都不匹配怎么办?其实也没什么,结果就是所有的语句都被跳过而已,程序并不会终止,也不会报错,因为这种情况在C中并不认为是个错误,但是,如果你并不想忽略不匹配所有标签的表达式的值时该怎么办呢?
你可以在语句列表中增加一条default子句,语法结构如下:

default:      

       语句

       break;

写在任何一个 case 标签可以出现的位置。
当 switch 表达式的值并不匹配所有 case 标签的值时,这个 default 子句后面的语句就会执行。所以,每个switch语句中只能出现一条default子句。

每天一个编程好习惯:
在每个 switch 语句中都放一条default子句是个好习惯,甚至可以在后边再加一个 break 。

好了,本篇文章到这里就结束, 你们的点赞和关注是对我的最大鼓励,有问题的朋友欢迎在评论区留言~

  • 11
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值