C语言的分支与循环结构(一)

Hello 大家好 我是一名大一的计算机菜鸟 我想通过这个平台分享自己的学习路程以及分享自己的学习心得 今天我想和大家分享的是C语言的分支与循环结构。

C语言是一个功能多样的语言,编写不同的代码能实现各种功能。

比如用代码创造各种各样的图形,数列,以及对各种数据进行多样的计算和对数据的判断。

而这些功能的实现,大部分都需要用到分支和循环结构。

比如 :    “判断一个数是否为奇数”

             “输入三个数字,从小到大输出”

这类问题用C语言来实现,就需要通过C语言的分支来实现,所以今天我来为大家分享一下我对C语言中分支结构的理解。

我们可以通过if语句switch语句来实现分支结构的创建。

一. if语句

由scanf输入数据,再由if(表达式)接收数据,如果为真则输出设置好的语句,如果为假则进入else(不符合if里表达式的情况时,就会进入else中)分支中,输出else中的语句或者直接结束。

由此我们可以知道if语句的基础用法啦~

那么让我们用做题实践来尝试一下if语句的运用吧。

我们就拿上面“判断一个数是否为奇数”为例,用if语句来解答一下这个题。

#include <stdio.h>
int main()
{
    int a;
    printf("输入一个数:");
    scanf("%d", &a);
    if (a % 2 == 0)
        {   // 判断这个数除以 2 的余数
            printf("%d 是偶数。", a);
        }
    else
        {
            printf("%d 是奇数。", a);
        }
    }

在这段代码中就由if语句构造了分支结构,当我们输入一个数字赋值给a时,a进入if语句分支结构中,表达式(a%2==0)如果为真,则输出a是偶数

如果表达式(a%2==0)为假,则输出a是奇数

这就是用if语句解答怎么样判断一个数是否为奇数,你们这么聪明,一定能够理解了吧,怎么样,是不是很简单呢?

那么趁热打铁!我们再做一个练习题吧!~

解题思路:

我们上面刚刚提到的“输入三个数字,从小到大输出”也是一个非常经典的if语句分支结构题。

我们需要用if语句判断a,b,c之间的大小关系,再通过创建整型变量tmp接收a,b,c的值然后以tmp为中间数据使a,b,c根据大小关系交换顺序。

如果输出的顺序是按照a,b,c的顺序输出,那么就是分别比较大小,将最大的数据交换给a,将中间的数据交换b,将最小的数据交换给c。

好啦,有了思路,让我们开始敲代码吧!

#include <stdio.h>
int main()
{
    int a = 0, b = 0, c = 0;
    scanf("%d%d%d", &a, &b, &c);
    if (a < b)
    {
        //创造一个整型tmp 用来接收a的值
        int tmp = a;
        a = b;
        b = tmp;//当a<b时 将a与b交换 以下同理
    }
    if (a < c)
    {
        int tmp = a;
        a = c;
        c = tmp;
    }
    if (b < c)
    {
        int tmp = b;
        b = c;
        c = tmp;
    }
    printf("%d %d %d\n", a, b, c);
    return 0;
}

我们随便输入三个数字进去。

成功按大小排序成521啦。

除了if语句可以构建分支结构,switch语句同样也能构建分支结构。

switch 语句其实和if...else结构非常相像,如果当需要过多的分支需要构建时,那么switch将是比if语句更加方便,易于使用且便于阅读的语句。

switch语句在使用时,格式为

switch(表达式)
{
case 结果1: (结果为1时下一步的步骤)
     break;(输出上述步骤后,跳出switch结构)
case 结果2: (结果为2时下一步的步骤)
     break;(输出上述步骤后,跳出switch结构)
......
default: (结果都不符合时下一步的步骤)
}

如果用switch来做刚刚“判断一个数是否为奇数”这道题

就需要改写成以下形式:

#include <stdio.h>
int main()
{
    int a;
    printf("输入一个数:");
    scanf("%d", &a);
    switch(a%2)
    {
        case 0:printf("%d 是偶数。", a);
        break;
        case 1:printf("%d 是奇数。", a);
        break;
    }
    return 0;
}

怎么样,是不是要比if语句看起来更加方便可读呢,两种语言都各有各的特点和优点,我们需要多多练习才能掌握并且熟练的运用他们,只要学会了,不管哪一种方法都是简单的!

那么今天就分享到这里啦!我们下次再见哦~

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值