C语言学习之路--分支语句和循环语句,从知识到实战

一、前言

  • 本人是一名小白,这一篇是记录我C语言学习中的分支语句和循环语句的所学所得,仅为简单的认识下C语言中的各个知识。
  • 重点内容如下图

二、什么是语句?

  • C语句可分为以下五类:
  1. 表达式语句(2+3;)
  2. 函数调用语句
  3. 控制语句
  4. 复合语句
  5. 空语句
  • 本章后面介绍的是控制语句
  • 控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构),它们由特定的语句定义符组成,C语言有九种控制语句。—>C语言是一门结构化的程序设计语言
  • 可分成以下三类:
  1. 条件判断语句也叫分支语句:if语句、switch语句;
  2. 循环执行语句:do while语句、while语句、for语句;
  3. 转向语句:break语句、goto语句、continue语句、return语句。

三、分支语句(选择结构)

  • 人生处处面临选择,不同的选择也让这个世界多元化,在程序的设计中也是如此。

1、if语句

1、那if语句的语法结构是怎么样的呢?

#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main()
{
   
	//单分支
	if(表达式)
		语句;
	//表达式为真,语句执行
	//在C语言中如何表示真假?0表示假,非0表示真。

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

	return 0;
}

2、应用举例

#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
   
    int age = 0;
    scanf("%d", &age);//20

    //单分支
    //if (age >= 18)
    //    printf("成年\n");

    //双分支
    //if (age >= 18)
    //    printf("成年\n");
    //else
    //    printf("未成年\n");

    //多分支
    if (age < 16)
        printf("少年\n");
    else if (age >= 16 && age < 30)
        printf("青年\n");
    else if (age >= 30 && age < 40)
        printf("中年\n");
    else if (age >= 40 && age < 56)
        printf("壮年\n");
    else if (age >= 56 && age < 80)
        printf("老年\n");
    else
        printf("老寿星\n");

    return 0;
}

运行结果
在这里插入图片描述

  • 注意:if可以嵌套(if里面还有if)

3、那如果条件成立,要执行多条语句,该应该使用代码块呢?

#include <stdio.h>
int main()
{
   
    if(表达式)
   {
   
        语句列表1}
   //if语句只能控制一条语句,这里的一对 { } 就是一个代码块。
    else
   {
   
        语句列表2}
    return 0;
}

举例

#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

int main()
{
   
	int age = 20;

	if (age >= 18)
	{
   
		printf("成年\n");
		printf("担当责任\n");
	}
	return 0;
}

运行结果
在这里插入图片描述

4、悬浮else

  • 当我们打出下面这个代码
#define  _CRT_SECURE_NO_WARNINGS 1
#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;
}

运行结果
在这里插入图片描述
我们会发现什么都没有。

  • 我们需要修改成以下
#define  _CRT_SECURE_NO_WARNINGS 1
#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的匹配:else是和它离的最近的if匹配的。
  • 注意
    if+else是一条语句。

5、if书写形式的对比

#define  _CRT_SECURE_NO_WARNINGS 1
# include <stdio.h>
int main()
{
   
	int condition = 0;
	int x, y;
	//代码1
	if (condition) {
   
		return x;
	}
	return y;

	//代码2
	if (condition)
	{
   
		return x;
	}
	else
	{
   
		return y;
	}

	//代码3
	int num = 1;
	if (num == 5)
	{
   
		printf("hehe\n");
	}
	//代码4
	int num = 1;
	if (5 == num)
	{
   
		printf("hehe\n");
	}

	return 0;
}
  • 代码2和代码4更好,逻辑更加清晰,不容易出错。
  • 小练习
#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//比较一个变量和一个常量是否相等的时候
//建议把常量放在等号的左边


//输出1-100之间的奇数
int main()
{
   
	int i = 1;
	
	while (i <= 100)
	{
   
		
		if (i%2 == 1)
			printf("%d ", i);
		i++;
	}
	return 0;
}

运行结果
在这里插入图片描述

2、switch语句

1、介绍

  • switch语句也是一种分支语句,常常用于多分支的情况。

2、举例

#define  _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main(
  • 13
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值