【C++ 程序设计入门基础】- 第3节-循环结构01

目录

循环结构

[一、for 语句](#一、for 语句)

[for 循环案例](#for 循环案例)

输入一个整数n,输出1~n的所有整数。

编译运行,查看输出结果

编译调试

[for 循环结构语义分析](#for 循环结构语义分析)

[二、beak 语句](#二、beak 语句)

[三、continue 语句](#三、continue 语句)

案例1:

案例2:

案例3:


循环结构

在实际生活中,经常会将同一件事情重复做很多次,在 C++ 语言中,也经常需要重复执行 同一代码块,这时就需要使用循环结构

一、for 语句

for 循环案例
输入一个整数n,输出1~n的所有整数。
cpp 复制代码
#include <iostream>
#include <windows.h>
using namespace std;

int main(){
	/**
	  输入一个整数n,输出1~n的所有整数。
	**/
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		cout<<i<<"\n"<<endl;
	}
	return 0;
}
编译运行,查看输出结果
编译调试

1、工具》编译选项》代码生成/优化》连接器 然后在"产生调试信息"那里吧 no 改为 yes

2、设置断点

3、点击菜单 运行-调试,按F5也是可以的,或者点击工具栏上的那个 √ 也是可以开始调试的。叉号是停止调试。

4、设置需要监控的对象

5、点击查看对象,输入 i 这时候我们就可以查看 i 每一步的输出值了。

下一步,是单步执行,但是不进入子函数。

单步进入,单步执行,进入子函数。

跳过跳过函数很明白了。

下一条语句,在汇编代码就可以看到,是逐句执行汇编代码

进入语句,也是在汇编代码中可以看到,也是逐句执行汇编代码。

但是它与 下一步语句 区别是,下一条语句不会进入到系统调用,比如标准库的汇编代码,但是进入语句 会进入标准库的汇编代码。

注:调试程序,大家可以自行去练习一下,多动手时间跟踪一下,你就会很熟练了。

for 循环结构语义分析

二、beak 语句

break语句是指直接跳出所在的循环。注:break 只能跳出当前所在的循环体。

输入一个整数n,输出1~n的所有整数,遇到5时停止。

cpp 复制代码
#include <iostream>
#include <windows.h>
using namespace std;

int main(){
	/**
	   输入一个整数n,输出1~n的所有整数,遇到5时停止。
	**/
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		if(i==5)
			break;
		cout<<i<<"\n";
	}
	cout<<"this is a break test";
	return 0;
}

运行查看结果

三、continue 语句

continue语句是指直接执行下一次循环。

案例1:

输入一个整数n,输出1~n的所有整数,遇到偶数时不输出。

cpp 复制代码
#include <iostream>
#include <windows.h>
using namespace std;

int main(){
	/**
	   输入一个整数n,输出1~n的所有整数,遇到偶数时不输出。
	**/
	int n;
	cin>>n;
	for(int i=1;i<=n;i++){
		if(i%2==0)
			continue;
		cout<<i<<"\n";
	}
	cout<<"this is a continue test";
	return 0;
}

运行查看结果

案例2:

输入一个整数n(0<n<10),输出n! 。

cpp 复制代码
#include <iostream>
#include <windows.h>
using namespace std;

int main(){
	/**
	 *
	 * 输入一个整数n(0<n<10),输出n的阶乘 n! 
	 * n!= n*(n-1)*(n-2)*...1
	 *
	**/
	long long n,fac=1;
	cin>>n;
	for(int i=1;i<=n;i++){
		fac = fac*i;//fac*=i;
	}
	cout <<"fac="<<fac<<endl;//flush 刷新缓存区
	return 0;
}

查看运行结果

案例3:

输出斐波那契数列第10项( F(1)= F(2)= 1; F(N)= F(N-1) + F(N-2) )。

注:什么叫斐波那契数列?直白点就是当前数据项的值等于它前两项的数值之和。

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以子繁殖为例子而引入,故又称"兔子数列",其数值为:1、1、2、3、5、8、13、21、34......在数学上,这一数列以如下递推的方法定义:F (0)=1,F (1)=1, F (n)=F (n - 1)+F (n - 2)(n ≥ 2,n∈ N*)。

cpp 复制代码
#include <iostream>
#include <windows.h>
using namespace std;
/**
 * 输出斐波那契数列第10项( F(1)= F(2)= 1; F(N)= F(N-1) + F(N-2) )
**/
//定义一个int数组
long long f[100+5];
int main(){
	f[1]=f[2]=1;
	for(int i=3;i<=100;i++){
		f[i]=f[i-1]+f[i-2];
	}
	cout<<"f[10]="<<f[10]<<endl;
	return 0;
}

运行结果:

下一节讲解循环结构 while 语句的用法

相关推荐
坚果派·白晓明3 小时前
【鸿蒙PC】SDL3 适配:AtomCode + Skills 快速集成 NAPI 测试工具
c++·华为·ai编程·harmonyos·atomcode
huangdong_3 小时前
淘宝商品SKU图自动分类技术深度解析:从DOM解析到智能归档
开发语言·javascript·ecmascript
阿正的梦工坊3 小时前
【Rust】12-借用检查器与非词法生命周期
开发语言·后端·rust
qq_2518364573 小时前
基于java Web网络订餐系统设计与实现 源码文档
java·开发语言·前端
秋93 小时前
3年经验Python后端转AI Engineer:3个月实战转型计划(2026版)
开发语言·人工智能·python
凡人叶枫3 小时前
Effective C++ 条款17:以独立语句将 newed 对象置入智能指针
java·linux·开发语言·c++·算法
飞天狗1113 小时前
零基础JavaWeb入门——第2课:让网页“活”起来 —— JSP是什么?
java·开发语言·前端·后端·web
醇氧4 小时前
【Linux】Java 服务生产级部署指南:实现常驻后台、开机自启与系统服务化管理
java·开发语言
凡人叶枫4 小时前
Effective C++ 条款16:成对使用 new 和 delete 时要采取相同形式
开发语言·c++·effective c++
不吃土豆的马铃薯5 小时前
C++ 高性能网络缓冲区 Buffer 源码解析
linux·服务器·开发语言·网络·c++