C语言:分支与循环语句

C语言:分支与循环语句一丶什么是语句 C 语句可分为以下五类 1 表达式语句 2 函数调用语句 3 控制语句 4 复合语句 5 空语句本篇介绍的就是控制语句

大家好,欢迎来到IT知识分享网。

一丶什么是语句

C
语句可分为以下五类:
1.
表达式语句
2.
函数调用语句
3.
控制语句
4.
复合语句
5.
空语句
本篇介绍的就是控制语句。

控制语句
用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,
C
语言有九种控制语句。
可分成以下三类:
1.
条件判断语句也叫分支语句:
if
语句、
switch
语句;
2.
循环执行语句:
do while
语句、
while
语句、
for
语句;
3.
转向语句:
break
语句、
goto
语句、
continue
语句、
return
语句。
我们下面主要涉及到的是分支语句和循环语句。
C语言是结构化的语言常见的语句结构有如下几种:
C语言:分支与循环语句

 

 二丶分支结构(循环语句)

1.选择语句的基本结构图

C语言:分支与循环语句

 

2.if语句

(1).

if(表达式)

语句1:

(2)

if(表达式)

语句1;

else

语句2;

(3)多分支型

if(表达式)

语句1;

else if(表达式2)

语句2;

else

语句3;

#include <stdio.h> //代码1 int main() { int age = 0; scanf("%d", &age); if (age < 18) { printf("未成年\n"); } } //代码2 #include <stdio.h> int main() { int age = 0; scanf("%d", &age); if (age < 18) { printf("未成年\n"); } else //else与最近的上面那个if相匹配 { printf("成年\n"); } } //代码3 #include <stdio.h> int main() { int age = 0; scanf("%d", &age); if (age < 18) { printf("少年\n"); } else if (age >= 18 && age < 30) { printf("青年\n"); } else if (age >= 30 && age < 50) { printf("中年\n"); } else if (age >= 50 && age < 80) { printf("老年\n"); } else { printf("老寿星\n"); } }

在上面的代码中,if括号里的语句如果是成立的话即可执行代码,否者不执行或者进入下个语句。表达式的结果为0的话就表示假,非0的话就表示真。同时如果要实现多个语句的执行的话,就需要在if语句后跟代码段。即如下情况

if(表达式1) { 多条语句; } else { 多条语句; } return 0;

注:用{}隔开即可

在书写if语句时,我们需要注意的是注意书写格式和规范性,规范的书写习惯能让我们更好的阅读语句,在发生bug时也能更好的检查错误。

3.练习

(1)判断一个数是否为奇数

(2)输出1-100之间的奇数

参考答案如下:

#include<stdio.h> int main() { int num = 0; scanf("%d", &num); if (num % 2 == 0) printf("该数不是奇数"); else printf("该数是奇数"); return 0; }
int main() { int n = 0; while (n < 101) { if (n % 2 == 1) printf("%d ", n); n++; } return 0; }

4.switch语句

(1)switch常用于多分支情形下,在分支太多的情况下,if语句就显得冗杂多余了。switch语句语句结构如下

C语言:分支与循环语句

 switch语句在特定情况下方便很多,例如下面这个:

输入
1
,输出星期一
输入
2
,输出星期二
输入
3
,输出星期三
输入
4
,输出星期四
输入
5
,输出星期五
输入
6
,输出星期六
输入
7
,输出星期日
用if语句的话就得一直写else if,而switch则简洁多了
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; }
break
语句
的实际效果是把语句列表划分为不同的分支部分,在书写中我们习惯的把最后一句case后面跟上一个break,这样可以防止出bug。
那么,如果输入的值和上面所给的值都不一样怎么办。这时我们就需要default语句了,它可以出现在任何一个casa的后面,它将会结束这个进程,但是会执行它前面的子语句。
三丶循环结构
1.if语句和switch语句帮我们解决了很多问题,但是还有很多问题并不能一次就解决,需要重复多次才能完成,因此循环结构也就显得十分重要。循环语句主要有三种:while,for,do while。
2.while语句

(1)while语句的语句结构如下:

C语言:分支与循环语句

 具体写做  {while(语句)

               循环语句;}

(2)在switch语句中有停止语句,在while语句中同样也是如此。

break在循环语句中,遇到break的话,就会停止后面的所有循环,直至终止循环。

并且是永久终止循环,即直接跳出这个循环,结束进程或者进入下个语句。

continue语句则是为了结束当前语句的循环,即continue语句后面的语句不再执行,而是跳到while语句处,进行下一次的循环判断。

示例如下:

int main() { int i = 1; while(i<=10) { if(i == 5) break; printf("%d",i); i++; } return 0; }

上诉代码输出的结果为1234,即在i==5的时候整个循环就结束,不再执行。

#include <stdio.h> int main() { int i = 1; while(i<=10) { if(i == 5) continue; printf("%d ", i); i = i+1; } return 0; }

上诉代码的输出结果也为1234,但是与上面那个不同的是,上面的代码是因为跳出了循环,而这个是因为i++语句在continue语句后面,因此在i==5被continue语句中断那次循环后,i的值一直是5,输出不了后面的值了。

3.for循环

(1)for循环的结构

for(语句1:语句2:语句3)

循环语句;

for后面的三个语句功能如下:

语句1
表达式
1

初始化部分
,用于初始化循环变量的。
语句2
表达式
2

条件判断部分
,用于判断循环时候终止。
语句3
表达式
3

调整部分
,用于循环条件的调整。

示例如下:

#include <stdio.h> int main() { int i = 0; //for(i=1/*初始化*/; i<=10/*判断部分*/; i++/*调整部分*/) for(i=1; i<=10; i++) { printf("%d ", i); } return 0; }

(2)break和continue语句在for语句中与while语句中大同小异,具体用法和作用参考上面的while部分。

//代码1 #include <stdio.h> int main() { int i = 0; for(i=1; i<=10; i++) { if(i == 5) break; printf("%d ",i); } return 0; } //代码2 #include <stdio.h> int main() { int i = 0; for(i=1; i<=10; i++) { if(i == 5) continue; printf("%d ",i); } return 0; }

4.do..while语句

(1)do…while的语法

do

循环语句;

while(表达式);

(2)do..while的限制条件是至少得循环一次,因此没有上面2种的使用范围广,我们不是经常使用

示例:

int main() { int i = 10; do { printf("%d\n", i); }while(i<10); return 0; }

(3)do..while语句中的break和continue与while中基本一样,参照上诉就可了

5.如果想快速熟悉分支语句和循环语句的话,可以多做做以下的题目,能加深印象和提高熟练度.

折半查找算法

int main() { int arr[] = {1,2,3,4,5,6,7,8,9,10}; int left = 0; int right = sizeof(arr)/sizeof(arr[0])-1; int key = 7; int mid = 0; while(left<=right) { mid = (left+right)/2; if(arr[mid]>key) { right = mid-1; } else if(arr[mid] < key) { left = mid+1; } else break; } if(left <= right) printf("找到了,下标是%d\n", mid); else printf("找不到\n"); }

四丶后语

分支结构和循环结构是我们平时不可避免的2种方式,因此必须得熟练熟练再熟练,只有熟练掌握了这2种结构才能在后面的学习中不断进步。

最后,谢谢大家的观看!!C语言:分支与循环语句

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/139207.html

(0)
上一篇 2025-06-07 17:45
下一篇 2025-06-07 18:00

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信