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语句看起来更加方便可读呢,两种语言都各有各的特点和优点,我们需要多多练习才能掌握并且熟练的运用他们,只要学会了,不管哪一种方法都是简单的!
那么今天就分享到这里啦!我们下次再见哦~