IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> c语言 分支与循环语句 -> 正文阅读

[C++知识库]c语言 分支与循环语句

小白初学C语言,学完分支与循环语句总结如下:

C语言是结构化的程序语言:1.顺序结构? 2.选择结构? ?3.循环结构

这里只总结选择结构中的分支语句和循环语

目录

小白初学C语言,学完分支与循环语句总结如下:


什么是语句

?分支语句(选择结构)

? ? ? ? ? ? ?if语句

? ? ? ? ? ? ?switch语句

循环语句

??????????????while循环

? ? ? ? ? ? ? ?for循环

? ? ? ? ? ? ? ? do while循环

? go to语句


? ? ? ? ? ? ? ? ? ? ? ? ? ? ?首先,什么是语句?

C语言中由一个分号隔开的就是一条语句。例如:

printf("hehe");
1+2;
int main()
{
    int a=0;
    ;//空语句
    return;
}

????????????????????????????????? 分支语句(选择结构)

如果你好好学习,校招时拿一个好offer,走上人生巅峰;

如果你不好好学习,毕业等于失业,回家卖红薯。

这就是选择。

????????????????????????????????????????if语句

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 语法结构:

1.单分支:? ? ? ? ? if(表达式)

? ? ? 语句

int main()
{
   int age=20;
   if(age<18)
   printf("未成年\n");
   return 0;
}

2.双分支 :if(表达式)

语句一;

else

语句二;

int main()
{
int age=20;
if(age<18)
printf("未成年\n");
else
printf("成年\n");
}

3.多分支:if(表达式1)

? ? ? ? ? ? ? ? ? ? 语句1;

else if(表达式)

? ? ? ? ? ? ? ? ? ? ?语句2;

else

? ? ? ? ? ? ? ? ? ? ? 语句3;

?

???

????悬空else?????????? ? ? ? ????????????????????????

?else有匹配原则:else与离他最近的未匹配的if进行匹配

p1中:因为else与最近的if匹配,所以当a!=1时,直接跳出不打印

p2中:要想打出haha,将第二个if用{}括起来

p3中:代码风格是差的

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??if形式对比

C语言中:= 表示赋值,== 表示判断?

未来如果涉及到常量与变量的比较,我们可以将常量写在前面,这样可以避免==写成=,出现bug

????????????????????????????????????????????????练习

1.判断奇数(% 求余符号)

?输入n,除以2,如果余数为0,则n为偶数

如果余数为1,则为奇数

2.输出1-100间的奇数

?两种方法:(1)除以2,判断余数是否为1或者不为0,然后while一直循环到100

(2)定义i=1开始循环+2到100

????????????????????????????????switch语句

?switch语法:

switch(整形表达式)
{
语句项;
}

语句项:?是一些case语句
case整型常量表达式:语句

switch语句也是一种分支语句,常常用于多分支的情况

使用场景:

  • switch语句从case进去,break终止出来,所以两者搭配使用
  • switch语句是整形语句,后面必须是整形
  • case后面也必须是整形常量表达式,所以不能用 n

根据需求,如果1-5是工作日,6.7是休息日也可以写成这样

?建议即使是最后一个也加上break?

  • defaut可以处理非法状况,如输入8? 9,可以出现在任何位置
  • 可以加if语句,不能加continue?

下面我们看一下这种情况:

  • 因为n=1,所以进入switch语句中的case1,因为没有break所以进入后面的case?2、case3中的case2,再进入case4,遇到break出来,所以最后m=5,n=3

????????????????????????????????????????????????循环语句

  • while
  • for
  • do while

????????????????????????while循环的执行流程:

? ? ? ? ? ? ? ? ? ? ? ? ?while循环

我们已经掌握 if 语句:应为这个语句只会循环一次

但我们实际生活中,同一件事情我们往往需要完成很多次,所以C语言中引入了while语句,可以循环很多次

while语句的语法结构是:

while(表达式)
  循环语句
in main()
{
  while(1)// 1为真,0为假
   printf("hehe");
   return 0;
}
  • 打印出 hehe 的死循环

打印1-10之间的数字

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

? ? while循环中的break和continue

? ? break在while循环中的作用:

在循环中只要遇到break就直接终止循环!

int main()
{
  int i=1;
  while(i<=10)
  {
   if(5==i)
     break;
   printf("%d\n",i);
   i++;
  }
  return 0;
}
  • i=1<10 进入while循环中,进入if 判断 i !=5,打印、增加,一直到 i=5进入if 判断成功,遇到break直接终止循环,所以屏幕上打印出1、2、3、4

? ? continue在while循环中的作用:

? continue终止本次循环,在continue后面的语句不在执行,直接进入下一次while循环中

? ? ? ? ? ? ? ?

  • ?i=1<10进入while循环,进入 if 判断 i!=5,打印、增加,一直到 i=5,进入if 判断成功,遇到continue 跳过后面语句,进入下一循环,直到 i>10,跳出循环。所以屏幕上打印出1、2、3、4、6、7、8、9、10

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? for 循环

语法:

for(表达式1;表达式2,表达式3)//建议写成前闭后开
        循环语句

表达式1为初始部分,表达式2是条件判断部分,表达式3为调整部分

情景:

?因为while无法将初始、判断、调整放在一起,所以用 for 循环

应用:

?for循环的流程图:

?由上图可以清楚的看到 for 循环的执行流程

?????????????????for 循环中的 break 和 continue

for循环中的break和while中的break意义相同

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

屏幕上打印出来时:1、2、3、4

for循环中的continue与while中的意义形同,但在其他方面也有不同

  • ?由上图,我个人的理解是,图1是i++在continue的前面,所以可以打出1、2、3、4、6、7、8、9、10;图2是i++在continue后面,所以打印出1、2、3、4后死循环

????????????????for循环控制变量的一些建议

1.不可在for循环体内修改循环变量,防止for循环失去控制

  • ?因为在 for 循环内的 if 语句中将 i赋值为5,使得这个代码成为死循环一直打印 hehe 和 haha

2.建议在 for 语句循环控制变量的取值采取 “前闭后开的写法”

  • ?因为这样写的话,10有一定的意义,比如:10次循环,10次打印,10个元素

????????????????for循环的变种

1.变种一:

  • ?for 循环的初始话、判断、调整都可以省略
  • 如果判断省略,那判断条件恒为正

? 判断可以省略,但是不能随便省略

  • ?这个循环中因为 j 的判断条件被省略,所以每次循环 j 不会被重新赋值,当 j >10时,最里面的 for 语句不再执行,所以屏幕上只能打印出 10 个 hehe

2.变种二:

int main()
{
    int x, y;
    for(x=0,y=0;x<2 && y<5; ++x; ++y)
    {
     printf("hehe");
    }
    return 0;
}
  • 这个代码中有两个变量 x,y 要同时满足,这个代码才可以被执行,所以这个代码打印两个hehe

一道笔试题:

  • ?因为在 for 语句的判断处,k 被赋值为0,0为假,所以不循环
  • 如果 k 被赋值为非0,则为死循环

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?do while 循环

do语句的语法:

do
     循环语句;
   while(表达式);

执行流程图:

?实例:打印1-10的数字

  • 也可以根据条件状语从句理解?
  • 因为 do while语句上来就干,再判断循环,所以至少打印一次

do while语句中的 break 和 continue 和前面的可以同一思路理解

????????????????????????????????go to语句

C语言中提供了可以随意滥用的go to语句和标记跳转的标号

从理论上 go to 语句是没有必要的,实践中没有 go to 语句也可以容易写出代码

但是它可以终止程序在某些深度嵌套的结构的处理过程,例如:一次跳出两层或多层循环

int main()
{
again;
     printf("hello bit");
     goto again;
     return 0;
}
  • again放在哪里,go to就跳到哪里
int main()
{
    printf("hello bit");
    goto again;
    printf("你好");
again;
    printf("hehe");
    return 0;
}
  • 这里打印出来是没有 你好 的
  • goto 语句在代码里是可以跳来跳去的,可能会使代码的执行流程被打乱

goto 语句并不是一无是处:

  • 这里要跳出,用?break 只能跳出一层,而用 goto 可以一次?跳出

下面是使用 goto 语句的一个例子:

一个关机程序

  • 设置一个关机命令 shutdown-t-s60,60s后关机
  • system-执行系统命令 ,给定以后就开始60s倒计时的操作
  • 然后给用户一个友好的提示”请注意您的电脑将在1分钟后关机,请输入:我是猪 就取消关机
  • 然后用 if 判断输入的是否与 我是猪 相等,,若相等则取消关机
  • 若输入错误,则用 goto 再给提示一下

可以搜索百度,把这个文件以服务装在朋友的电脑上,把属性改成自动,然后就变成开机一分钟后关机,然后你可以很装逼地帮朋友解决,哈哈哈哈哈

到这里,分置于循环语句就总结完了

紧随鹏哥脚步,认真学好C语言

如果有什么错误的地方,请务必指出!


  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章           查看所有文章
加:2021-10-28 12:13:13  更:2021-10-28 12:16:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年4日历 -2024/4/27 3:44:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码