news 2026/2/3 4:59:56

【C++入门必备】最详细入门教程(3)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【C++入门必备】最详细入门教程(3)

前言

注意:只针对Windows版,如果有误,请友善指正
千百年来(其实也没有千年)
这款语言一直言传至今
它举世闻名
谈到它的人
有的恐惧,有的欢喜
这,就是C语言。

第三章·终于开始写代码啦!

四、循环语句(for、while、do-while)

AAA小剧场——
A:叮铃铃,上课啦!我们今天将学习循环语句,先来讲讲for循环吧,伪代码如下:

for(循环变量类型 循环变量名=循环初始值;循环条件;变量变化){循环执行内容}

举个荔枝吧,如果我们想要输出1~100的数,如果我们直接用c out语句一个个输出的话,那么我们的代码会变得特别长,这个时候就需要用到循环语句了

#include<bits/stdc++.h>usingnamespacestd;intmain(){for(inti=1;i<=100;i++){//表示i从1循环到100,每次循环i都要+1,循环100次,每次输出i的值cout<<i<<endl;}return0;}

当然,如果我要倒着输出1~100的数,谁会写呢?
T:这个问题很简单,只需要把老师给的代码中第四行for语句改一下即可

#include<bits/stdc++.h>usingnamespacestd;intmain(){for(inti=100;i>=1;i--){//表示i从100循环到1,每次循环i都要-1,循环100次,每次输出i的值//注意!不是i++是i--,不是<=1是>=1,千万不要写错,并且末尾不能有分号!cout<<i<<endl;}return0;}

A:小T的方法很正确,接下来我给你们一个任务:输入一个整数n,输出1~n所有的质数
质数(也称素数)的定义:当一个自然数(一般不包括0)的因数(可以被这个数整除)只有1和它本身,则称之为质数,1不是质数,也不是合数
片刻之后——
C:这个题目普及到了一个新知识点——循环嵌套,跟if嵌套同理,循环也是可以嵌套的

#include<bits/stdc++.h>usingnamespacestd;intmain(){intn;cin>>n;for(inti=2;i<=n;i++){//1肯定不是质数,直接从2开始枚举到nboolisPrime=1;//一个是否是的布尔值,只有1和0两个值,1代表true,2代表falsefor(intj=2;j*j<=i;j++){//j依次枚举i可能的因数,如果有因数,那么直接将isPrime的值改为false,退出循环if(i%j==0){//如果可以整除isPrime=0;break;//新知识点:用break直接打断循环,注意!只能打破自己所在的这一层循环!}}if(isPrime){//如果isPrime的值=true,那么就是质数了cout<<i<<endl;}}return0;}

我的代码运用循环嵌套判断是否是质数,而用Break节省时间复杂度。
A:小C的方法非常好,完美地展现了判断质数的方法。
Q:老师,我有一个问题,为什么在判断is Prime的值是否为1时,不用写if(isPrime==1)而是直接写if(isPrime)呢?
A:这个东西就要扯到上节课的知识了,直接这样写就可以代表判断is Prime是否为1了,除了用bool可以这样写,int也可以!代表这个数是否小于0,如果是,则不执行,不是则执行。(喝口水,突然呛了几下)
C:我预习了接下来的内容,接下来还是我给大家讲讲while语句和do-while语句的使用吧!打个比方,我们还是用之前输出1~100的例子,那么用while语句怎么写呢?如下

#include<bits/stdc++.h>usingnamespacestd;intmain(){inti=1;while(i<=100){//表示i从1循环到100,每次循环i都要+1,循环100次,每次输出i的值cout<<i<<endl;i++;//注意!因为先将i赋值为了1所以要显示出i再++!}return0;}

S:那我明白了,在while语句中,只需要while(循环条件){循环语句}就行了,而i变化的操作则放在了循环语句里,定义则放在了循环之外。而且我还发现,我们如果直接在循环条件里写0及以上的数字,是不会编译错误的,它会将这个值当做布尔类型计算。

#include<bits/stdc++.h>usingnamespacestd;intmain(){string s="阿巴阿巴";while(1){cout<<s<<endl;}return0;}

这样的话它会无限输出“阿巴阿巴”,这样的话很不好,所以千万不要以为里面填1代表着循环一遍,千万别偷懒!本人亲身经历
T:嗯嗯,我也懂了,我们也可以写这么一个程序:

#include<bits/stdc++.h>usingnamespacestd;intmain(){inta,b;while(cin>>a>>b){//如果不输入A和B了,那么直接退出循环,实战中停止输入可以输入/zcout<<a<<'+'<<b<<'='<<a+b<<endl;}return0;}

Q:(内心ops:不是就我没听懂)
C:(眼神犀利,瞄准了小Q)来小Q你来写个程序,每次输入一个正整数,判断这个数是奇数还是偶数。
Q:好——吧?

#include<bits/stdc++.h>usingnamespacestd;intmain(){intn;while(cin>>n){if(n%2==1)cout<<"是奇数"<<endl;elsecout<<"是偶数"<<endl;};return0;}

S:(清了清嗓子)嗯哼,小Q你犯了一个错误,请允许我善意地指正。在第八行末尾那个右花括号后面不能有分号。
Q:嗯嗯,我马上改!
A:(缓了过来)看来你们基本都已经掌握了,那么我们接下来学一学do-while语句。举个荔枝,do-while语句至少会执行一遍,他是先执行一遍后再去判断是否能继续执行。

#include<bits/stdc++.h>usingnamespacestd;intmain(){intn;do{cin>>n;boolis=1;for(inti=2;i*i<=n;i++){//不同的循环也是可以嵌套滴if(n%i==0)is=0,break;//用逗号隔开可以一起在一个判断里执行}if(is)cout<<"Yes"<<endl;//如果是素数则输出Yeselsecout<<"No"<<endl;//否则输出No}while(n!=0);//注意!这里就要有分号了!return0;}

今天的课业就到这里,今天作业:
作业:
1.写一个程序,输出100遍“别人笑我穿的厚,我笑他人冻的透。”
2.写一个程序,每次输入一个数,输出1~这个数的所有偶数,直到这个数为0
3.写一个程序,每次输入一个小写字母,输出所有’a’到这个字符的字符,直到这个字符不为小写字母

下节课我们会讲数组类型,请大家阅读相关书籍提前预习,这是一个很重要的知识点!前提是你要学会循环与循环嵌套!

番外(结语,嗯对今天写得更少)

别人笑我太年轻,我笑他人死脑筋
别人笑我单身狂,我笑他人是海王
别人笑我爱宅家,我笑他人被风刮
别人笑我吃得慢,我笑他人胃病犯
别人笑我学不好,我笑他人脑袋烧
别人笑我书呆子,我笑他人文盲小子
别人笑我起太早,我笑他人把夜熬
别人笑我太单纯,我笑他人心太狠
别人笑我缺点赞,我笑他人太虚荣
别人笑我少收藏,我笑他人灰尘房
别人笑我没粉丝,我笑他人粘蛛丝
但再这样下去,我尽管笑他粘蛛丝也没用啊!快点关注我啊!!!

完结撒花(*-∀-)ノ花

你就说是不是撒花吧

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/28 22:42:48

iOS功能开关完整指南:从入门到精通的终极实践

iOS功能开关完整指南&#xff1a;从入门到精通的终极实践 【免费下载链接】awesome-ios-architecture :japanese_castle: Better ways to structure iOS apps 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-ios-architecture iOS功能开关是现代移动应用开发的革…

作者头像 李华
网站建设 2026/1/28 20:17:28

Step-Audio 2 mini:开源语音大模型如何让中小企业AI部署成本锐减80%?

导语 【免费下载链接】Step-Audio-2-mini 项目地址: https://ai.gitcode.com/hf_mirrors/stepfun-ai/Step-Audio-2-mini Step-Audio 2 mini开源语音大模型凭借多模态交互能力与本地化部署优势&#xff0c;正重新定义中小企业语音AI的成本结构与应用边界。 行业现状&am…

作者头像 李华
网站建设 2026/2/2 17:22:02

Flutter桌面交互优化:3个提升用户体验的关键技巧

Flutter桌面交互优化&#xff1a;3个提升用户体验的关键技巧 【免费下载链接】samples A collection of Flutter examples and demos 项目地址: https://gitcode.com/GitHub_Trending/sam/samples 你的Flutter桌面应用是否总觉得缺少了那种原生应用的流畅感&#xff1f;…

作者头像 李华
网站建设 2026/1/30 3:57:25

快速免费完整迁移:从动态博客到极速静态站点的终极指南

快速免费完整迁移&#xff1a;从动态博客到极速静态站点的终极指南 【免费下载链接】gridea ✍️ A static blog writing client (一个静态博客写作客户端) 项目地址: https://gitcode.com/gh_mirrors/gr/gridea 厌倦了动态博客的缓慢加载、复杂维护和高昂成本&#xff…

作者头像 李华
网站建设 2026/2/2 3:53:43

58、Ubuntu系统工具、测试与Perl编程全解析

Ubuntu系统工具、测试与Perl编程全解析 1. 实用系统工具介绍 在Ubuntu系统中,有几个实用的工具值得我们关注: - ssh - import - id :该工具通过安全连接访问公钥服务器(默认为https://launchpad.net ),获取一个或多个用户的公钥,并将其追加到当前用户的 ~/.ssh/au…

作者头像 李华
网站建设 2026/1/26 20:21:44

60、Perl与PHP编程实用指南

Perl与PHP编程实用指南 1 Perl编程示例 1.1 发送邮件 在Perl中,有多种方式可以实现邮件发送功能。以下是两种常见的方法: - 使用sendmail命令 :通过打开一个管道连接到sendmail命令并发送数据。示例代码如下: #!/usr/bin/perl open (MAIL, "| /usr/sbin/sendm…

作者头像 李华