今天给大家介绍C语言的分支循环,文章中有什么不对的地方可以指出来,纯手打,有可能打太快了,有错别字,希望大家谅解。

目录

1.if语句

2.关系操作符

3.条件操作符

4.逻辑操作符:&&,||,!

5.switch语句

6.while循环

7.for循环

8.do-while循环

9.break和continue语句

10.循环的嵌套

11.goto语句

一.if语句和else

1.if的语法结构

if(表达式)

语句

注意:在C语言中,0为假,非0为真。

在上述语法结构中,若表达式为真,则执行下面的语句,反之,则不会执行下面的语句。

执行的流程如下:

2.例子

比如我们来判断我们输入的整数是不是偶数

当我们输入16时,%为取余计算,它会显示为偶数

#define _CRT_SECURE_NO_WARNINGS 1

#include
int main()
{
int x;
printf(“请输入一个整数:\n”);
scanf(“%d”, &x);
if (x % 2 == 0)
printf(“你输入的数为偶数\n”);
return 0;
}

3.else语法结构

if(表达式)

语句1

else

语句2

4.例子

沿用上面的

#define _CRT_SECURE_NO_WARNINGS 1

#include
int main()
{
int x;
printf(“请输入一个整数:\n”);
scanf(“%d”, &x);
if (x % 2 == 0)
printf(“你输入的数为偶数\n”);
else
printf(“你输入的数不是偶数\n”);
return 0;
}

5.需要注意的点

(1)默认if和else语句都只控制一条语句

同理else也是如此

如何想控制两条语句,或者多条呢,只需要使用{}将代码括起来即可。如下所示:

(2)嵌套

#define _CRT_SECURE_NO_WARNINGS 1

#include
int main()
{
int x;
printf(“请输入一个整数:\n”);
scanf(“%d”, &x);
if (x > 0)
printf(“你输入的数为正整数\n”);
else if (x < 0)
printf(“你输入的数为负整数\n”);
else
printf(“你输入的数为0\n”);
return 0;
}

上面是嵌套的if语句例子。

(3)悬空else问题

注意:else总是与最近的if匹配

此时,有些同学可能会认为如何x<0会打印呵呵,可是事实是这样吗?

然而输出的结果不是这样,这是因为else会和最近的if相匹配,即如何我们输入1,1,此时就是打印我们的else的内容。

因此我们再写代码的时候,最后养成加{}的习惯。

二.关系操作符

>大于运算符

>=大于等于

<小于

<=小于等于

==相等,注意和=相区别,后者是赋值,前者是用来比较判断的

!=不相等

关系表达式通常返回0和1,表示假和真

最好不要写成0==x,这是不好的习惯

三.条件操作符(三目操作符)

形式如下:

exp1?exp2:exp3

如果exp1为真,取exp2的内容,反之,取exp3的内容

例子如下:

#define _CRT_SECURE_NO_WARNINGS 1

#include
int main()
{
int x;
printf(“请输入一个整数:\n”);
scanf(“%d”, &x);
int sum = x > 0 ” /> return 0;
}

四.逻辑操作符

!:逻辑取反

&&:逻辑与,要两边都为真,才为真

||:逻辑或,两侧至少一方为真,即为真

逻辑与,输入80 90时。左侧符合了,看右侧,右侧y=90,大于80了,因此为假,真&&假为假

如果改成||时,结果还是这样吗?

此时可见,明显不是了,因为||表示一侧为真,即为真

逻辑非,示例如下

当我输入1作为x 的值时,!x就表示假,假为0,真为非0

五.switch语句

是一种特殊的if else语句,用于判断条件有多个结果的情况

格式如下:

switch(表达式)

{

case 值1:

(break;)

case 值2:

(break;)

default:语句

}

注意的是:表达式必须为整形表达式;

case后的值,必须是整形常量表达式;

case和后面的值之间必须有空格;

每个case语句执行完成之后,需要加上break,这样才能跳出switch语句;

case语句和default语句是没有顺序要求的,当然我们要养成习惯,通常把default语句放在最后处理;

下面是switch语句使用的例子:

输入一位同学的成绩,输出是优秀(90及以上),还是良好(70及以上),还是合格(60及以上)

#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
//默认分数区间在0-100分之间
int source;
printf(“请输入一个学生的成绩:\n”);
while (scanf(“%d”, &source) != EOF)
{
switch (source / 10)
{
case 10:
case 9:
printf(“优秀\n”);
break;
case 8:
case 7:
printf(“良好\n”);
break;
case 6:
printf(“合格\n”);
break;
default:
printf(“不及格\n”);
break;
}
}
}

在没有break 的语句中,会继续往下执行,要是case后面的值输入为浮点数,则会显示错误

另外一种格式,需要注意的是,while (scanf(” %c”, &source) != EOF)里面%C前面必须要有个空格,因为调试的时候,回车也算一个字符,错误示例大家可以自行尝试

#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
char source;
printf(“请输入一个学生的成绩:\n”);
while (scanf(” %c”, &source) != EOF)
{
switch (source)
{
case ‘A’:
printf(“优秀\n”);
break;
case ‘B’:
printf(“良好\n”);
break;
case ‘C’:
printf(“合格\n”);
break;
default:
printf(“重修去吧,老铁\n”);
break;
}
}
}

六.while循环

1.语法结构

while(表达式)

语句;

2.执行流程

3.具体例子

利用while在屏幕上打印出1-10

#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int x = 1;
while (x<=10)
{
printf(“%d “, x);
x++;
}
return 0;
}

七.for循环

1.语法结构

for(表达式1;表达式2;表达式3)

语句

其中表达式1:循环变量的初始化

表达式2:循环结束条件的判断

表达式3:循环变量的调整

2.执行顺序

3.具体示例

其中表达式1-3均可在括号中省略,但会造成死循环等一系列问题,因此我们写代码最好写上,还有就是{}要加上,不管里面几条语句,最好加上。

找出1-100之间为偶数的数

#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int i;
for (i = 1; i <= 100; i++)
{
if (i % 2 == 0)
printf(“%d “, i);

}
return 0;
}

八.do-while循环

1.语法结构

do

语句

while(表达式);

2.执行顺序

3.具体示例

由执行顺序可知,do下面的语句必定会执行一次,不管条件是否成立

在屏幕上打印1-10

#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int i=1;
do
{
printf(“%d “, i);
i++;
} while (i <= 10);
}

九.break和continue

continue是跳过本次循环continue后面的代码,break则是跳出循环,但是要注意嵌套的循环里面的break就不是直接整个循环都跳出去了,是跳出里面一层。

具体的区别大家可以参考C primer plus或者csdn上查找,找不到的可以评论区留言

十.循环的嵌套

找出100~200之间的素数,并打印在屏幕上。 注:素数⼜称质数,只能被1和本⾝整除的数字。

#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
int i = 0;
//循环产⽣100~200的数字
for (i = 100; i <= 200; i++)
{
//判断i是否为素数
//循环产⽣2~i-1之间的数字
int j = 0;
int flag = 1;//假设i是素数
for (j = 2; j < i; j++)
{
if (i % j == 0)
{
flag = 0;
break;
}
}
if (flag == 1)
printf(“%d “, i);
}
return 0;
}

十一.goto语句(很少用到)

简单来说就是跳转指令,goto也不能随意使用,会造成程序执行混乱。

#define _CRT_SECURE_NO_WARNINGS 1
#include
int main()
{
printf(“hehe\n”);
goto next;
printf(“haha\n”);

next:
printf(“跳过了haha的打印\n”);
return 0;
}

十二.结尾

有些部分可能欠缺,欢迎大家评论区提问。