当前位置:网站首页>C语言分支结构和循环结构(1)
C语言分支结构和循环结构(1)
2022-07-22 05:53:00 【暴躁小程序猿】
C语言分支结构和循环结构(1)
文章目录
前言
一、C语言结构组成
C语言的结构化的程序设计语言!由顺序结构、选择结构、循环结构组成。
什么是语句?
一个分号隔开的就是一个语句;
1.分支语句(选择结构)
分支语句(选择结构):if switch
1.1 if语句
语法结构:
if(表达式)
语句:
if(表达式)
语句1;
else
语句2;
if()
语句1;
else if()
语句2;
else()
语句3;//如果后面有多条语句就得用{}括起来;
C语言中非0为真,0为假;
else和离得最近的if匹配;千万注意if和else的匹配问题
在敲代码的过程中要注意自己的代码风格;
int main()
{
int num=3;
if(num=5)
printf("hehe\nhehe\n");//判断相等的符号错写成赋值符,永远为真且不容易发现错误
if(5==num)
printf("hehe\n");//这种写法则可以保证代码的正确性,出现错误不能编译成功;
}
注意:在两数比较时,将常量放在左边更好一些;
练习题
1.判断一个数是否是奇数
#include<stdio.h>
int main()
{
int num=15;
if(num%2==1)
printf("奇数");
}
2.输出1~100之间的奇数
#include<stdio.h>
int main()
{
//c++
//c99支持这样写
for(int n=1;n<=100;n++)
{
if(1==n%2)
printf("%d是奇数\n",n);
}
return 0;
}
1.2 switch语句
语法结构:
switch(整型表达式)
{
语句项;//case语句项
case:整型常量表达式;
语句;
}
实例
利用switch写出星期一到星期天
#include <stdio.h>
int main()
{
int day=0;
scanf("%d\n",&day);
switch(day)
{
case 1:
printf("星期1\n");
break;
case2:
....
....
case 7:
printf("星期7\n");
break;
default: //代表其余选项;
printf("输入错误");
break;
}
return 0;
}
day和case的值决定入口;break是出口,代表跳出,一起才可以完整表达分支;
switch(整型表达式);
case(必须是整型常量表达式);
字符也可以,因为字符底层存储是利用ASCII码值;
为了方便后面代码的扩展,最后一个case语句后面也最好加上break;
default没有前后要求,只要符合需求,放在前后均可以;
2.循环语句
for
while
do while
一共包含3中,for循环用的最多。
while循环的格式:
2.1while循环
while(表达式)
循环语句;
如果while()括号内的表达式非0,循环语句就会被执行,循环语句不一定是语句,也有可能是代码块;
练习题
在电脑屏幕上打印1~10;
#include <stdio.h>
int main()
{
int i=1;
while(i<=10)
{
printf("%d\n",i);
i++;
}
return 0;
}
在while循环中,break用于永久的终止循环;continue表示跳过本次循环continue后面的代码,直接去判断部分,看是否进行下一次循环;
while循环一共包含三个部分,代码行数增加三个部分距离可能会变远
int main()
{
int i=1;//初始化
while(i<=10)
{
printf("%d",i); //判断部分
i++; //调整部分;
}
return 0;
}
2.2 for循环
for循环结构:
for(表达式1;表达式2;表达式3);
{
循环体;
}
for后面的括号内表达式1是初始化,表达式2是判断,表达式3是调整;三个部分放在一起,此处优于while循环。
for循环特点:初始化只执行一次。
break和continue在for循环中的作用:
break终止循环,跳出循环;continue跳出此次循环后面的代码开始下一次循环。
for循环的continue是跳到调整部分继续执行,而while循环很有可能直接跳过调整部分;
for语句的循环控制变量一些建议:
1.不可在for循环体内修改循环变量,防止for循环失去控制;
2.建议for语句循环控制变量的取值采用“前闭后开区间”写法
int i=0;
//前闭后开的写法
for(i=0;i<10;i++)
{
}
for循环从语法上来说三个部分都可以省略,判断部分的省略会导致判断部分恒为真,导致死循环。
一般不建议省略任何一个部分,可能会导致程序出错,例如:
int main()
{
int i=0;
int j=0;
for(i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("hehe\n");
}
}
return 0;
}
以上程序最终可以打印9个hehe;然而省略了初始化部分时:
int main()
{
int i=0;
int j=0;
for(;i<3;i++)
{
for(;j<3;j++)
{
printf("hehe\n");
}
}
return 0;
}
最终结果只能打印3个hehe;因为c内层for循环中的j由0一直j++到3,循环执行完成三次之后跳出内层循环到达for循环i++一次再次进入内层循环时,j还是等于3,所以直接跳出内层循环,如此反复导致只能最终打印3个hehe。
3. do while循环
do语句的语法:
int main()
{
int i=0;
do
{
printf("%d",i);
i++;
}while(i<=10);
return 0;
}
练习题
在电脑屏幕上利用do while循环打印1~10;
int main()
{
int i=0;
do
{
printf("%d",i);
i++;
}while(i<=10);
return 0;
}
do while循环的特点:循环体至少要执行一次;
总结
这章笔记主要包含了C语言的选择语句(if 、switch)循环语句(for、while、do while)等知识点以及每个语句对应的练习题,希望可以帮助到大家。
边栏推荐
- tf.set_ random_ seed()
- Zen administrator forgets password and retrieves password
- Overview of basic principles of network
- Vivo official website app full model UI adaptation scheme
- Atomicinteger class is used in multithreading to ensure thread safety
- 电子信息工程专业毕设题目选题推荐
- numpy.around
- Win11开机只有鼠标显示怎么办?
- UE4 set night (update skysphere according to directionallight direction)
- Pytorch optimizer: optim SGD && optimizer.zero_ grad()
猜你喜欢
1143. Longest common subsequence
Lepton 无损压缩原理及性能分析
Xshell Plus6下载及安装使用的方法
Gd32f470 serial port idle interrupt +dma
力扣刷题:dfs递归解决二叉树剪枝
5 minutes to talk about the enterprise PAAS platform hzero!
[C language interesting experiment]
Activity recommendation | Apache pulsar's exploration and practice in vivo will be broadcast soon
Qt5.9.2 initial import using msvc2017_ 64 record of problems encountered by compiler
ABAQUS realizes modal calculation of two degree of freedom vibration system
随机推荐
Tensorflow predicts daily sales
怎么使用js实现计算器和计时器功能
Abaqus实现二自由度振动系统模态计算
MySQL foundation +mysql cluster review
一文带你了解redux的工作流程——action/reducer/store
Base64、Blob、File 三种类型的相互转换 最详细
UE4 interview Basics (III)
Win11终端管理员打不开解决方法
[red team] att & CK - browser extension for persistence
UE4 writes the blueprint in the actor class to realize reuse
服务器buffer/cache 的产生原因和释放buffer/cache
tf.set_ random_ seed()
一种跳板机的实现思路
Building intelligent gray-scale data system from 0 to 1: Taking vivo game center as an example
UE4 merge static mesh body
[C language interesting experiment]
【C语言趣味实验】
What is I18N and what is its function
Apache自带的ab压力测试工具如何实现
工作流引擎在vivo营销自动化中的应用实践 | 引擎篇03