{C++程序设计初步(4)}菜大学生C++学习笔记7

第3章 (第3章 C++程序设计初步(4)


7 、 循环结构和循环语句
1 用土办法求1+2+3+4+5
int s;
s=1+2+3+4+5;
cout<<s<<endl;
return 0;
2 高级方法求1+2+3+。。。+10(while)
语法
While(表达式)
{
语句;
}
首先计算表达式的值,如果值为非0则执行{}中的语句(如果只有一条语句,可不加{})执行后继续计算表达式的值。直到表达式的值为0,循环结束。
#include
using namespace std;
int main()
{
int s=0,i=1;
while(i<=100)
{
s=s+i;
i++;
}
cout<<s<<endl;
return 0;
}
在这里插入图片描述
循环注意的问题:
循环中语句的顺序有可能影响执行结果。
在循环时特别注意第1次执行与最后一次执行时,每个变量的情况。
在这里插入图片描述
While循环先判断,后执行。有可能一次循环也不做。
在这里插入图片描述
3 do…while
语法
Do{循环体语句}while(表达式); 最后有一个分号
首先执行一次循环体语句。计算While后表达式的值,如果为真则继续执行循环体语句。否则跳出循环。
先执行后判断。(do…while至少执行一次循环体)

在这里插入图片描述
#include
using namespace std;
int main()
{
int s=0,i=1;
do
{
s=s+i;
i++;
}while(i<=100);
cout<<s<<endl;
return 0;
}
4 循环体中可否有多条语句?可以。
如果循环体只有一条语句,不必加{}
如果有多条语句,必须使用{}—》复合语句
建议:即使只有一条语句也使用{}。程序的可读性更好。

5 循环体中可否加判断(奇数和与偶数和)
循环体可以是任意符合C++语法规则的语句
#include
using namespace std;
int main()
{
int s=0,i=1;
while(i<=100)
{
if(i%2==1)
{
s=s+i;
}
i++;
}
cout<<s<<endl;
return 0;
}

6 千万不要造成死循环。(dead loop)循环永远不能结束。
大多数循环一般都有使循环趋于 结束的语句
此时使循环趋于结束的i++丢掉后。循环无法结束。
#include
using namespace std;
int main()
{
int s=0,i=1;
while(i<=100)
{
if(i%2==1)
{
s=s+i;
i++;
}

}
cout<<s<<endl;
return 0;
}
以上程序i为2时无法执行i++.也因此永远无法到达100.也造成死循环

7 循环三部分(循环之前做一次的,判断是否循环的,使循环趋于结束的)
#include
using namespace std;
int main()
{
int s=0,i=1;// 循环之前做一次。功能准备工作
while(i<=100)//条件判断,判断是否循环的
{
s=s+i;
i++; //使循环趋于结束的语句
}
cout<<s<<endl;
return 0;
}

8 使用最广泛的循环(for)
▪for语句的一般格式为
▪for(表达式1;表达式2;表达式3) 语句 (此处有两个分号)
▪ 它的执行过程如下:
▪(1) 先求解表达式1。
▪(2) 求解表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下面第(3)步。若为假(值为0),则结束循环,转到第(5)步。
▪(3) 求解表达式3。
▪(4) 转回第(2)步骤继续执行。
▪(5) 循环结束,执行for语句下面的一个语句。
在这里插入图片描述
#include
using namespace std;
int main()
{
int s=0,i;
for(i=1;i<=100;i++)
{
s=s+i;
}
cout<<s<<endl;
return 0;
}
在这里插入图片描述
三种循环语句 while do…while for
While与for都是先判断,后执行循环体。只要是先判断后执行都有可能一次也不执行。
Do…while后判断。

9 循环中是否可以是循环??(九九表)如果循环体依然是循环语句。循环的嵌套。For.while,do…while可以互相嵌套。
在这里插入图片描述
两个循环不是并列的关系。分内层与外层。
由两个循环变量来控制。
外层循环变量变化一次。内层循环从头到尾变化一遍。
#include
using namespace std;
int main()
{
int j,i;
for(i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
cout<<j<<""<<i<<"="<<ij<<" “;
}
cout<<endl;
}
return 0;
}
#include
using namespace std;
int main()
{
int j,i=1;
//外层循环与内层循环可以是不同的循环
while(i<=9)
{
for(j=1;j<=i;j++)
{
cout<<j<<”"<<i<<"="<<ij<<" ";
}
cout<<endl;
i++;
}
return 0;
}

10 循环中改变主意了怎么办(结束这次循环与结束整个循环。比如操场跑圈时遇到特殊情况)
break continue
break语句的功能结束整个循环。(断路)
continue语句功能结束本次循环。如果循环体有多条语句,遇到continue.掠过后面的语句,直接进入下一次循环。(短路)

求1到100的所有整数的和,当和超过3000时循环不再继续。
#include
using namespace std;
int main()
{
int s=0,i=1;
for(i=1;i<=100;i++)
{
s=s+i;
if(s>3000)
{
break;
}
}
cout<<s<<endl;
return 0;
}

#include
using namespace std;
int main()
{
int s=0,i=1;
for(i=1;i<=100;i++)
{
if(i%7==0)
continue;
s=s+i;
}
cout<<s<<endl;
return 0;
}

11 求π的值
π/4≈1-1/3+1/5-1/7+…
注意的问题。精度可自行掌握。整数与整数做除法,得到的结果为整数。
#include
using namespace std;
int main()
{
// 1-1/3+1/5-1/7+…
double i=1,pi=0.0;
int sign=1;
while(i<=50000)
{
pi=pi+sign/i;
i+=2;
sign*=-1;
}
pi*=4;
cout<<pi<<endl;
return 0;
}

12 Fibonacci数列前20个数。
1 1 2 3 5 8 13 21…。。
F1 F2 F3
1 1 2
1 2 3
2 3 5

#include < iostream>
using namespace std;
int main()
{
int f1,f2,f3,i=3;
f1=1;
f2=1;
cout<<f1<<endl;
cout<<f2<<endl;
while(i<=20)
{
f3=f1+f2;
cout<<f3<<endl;
f1=f2;
f2=f3;
i++;
}
return 0;
}
#include
using namespace std;
int main()
{
int f1,f2,i=1;
f1=1;
f2=1;
cout<<f1<<endl;
cout<<f2<<endl;
while(i<=9)
{
f1=f1+f2;
f2=f1+f2;
cout<<f1<<endl;
cout<<f2<<endl;
i++;
}
return 0;
}
作业:求e的值 e=1+1/1!+1/2!+1/3!..(精度自定)
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于C语言程序设计学生来说,第五版的PDF版本是非常有用和方便的资源。作为学生,经常需要参考教科书中的内容来帮助自己学习和理解编程的概念和技巧。使用PDF版的教材有几个优势。 首先,PDF格式的教材可以随时随地访问和使用。无论是在学校里、在家中还是在外出的时候,只需要一个电子设备和网络连接,就可以方便地打开和阅读教材。这样,学生可以根据自己的学习进度随时查看相关内容,避免了只能在特定时间和地点使用教材的限制。 其次,PDF文档具有搜索功能。通过使用关键词搜索,学生可以快速找到自己需要的内容,节省了在书本中翻找的时间。这对于理解某个特定概念或者查找特定代码示例是非常有帮助的。 另外,PDF教材可以进行标记和注释。学生可以在文档中添加自己的笔记、重点标记或者高亮显示,以便以后复习和回顾。这对于加深对知识点的理解和记忆非常有益。 最后,PDF版本的教材通常可以通过网络免费获取。这对于学生来说是非常经济和实用的选择,尤其是在经济拮据的情况下或者学校的图书馆无法提供足够的纸质教材时。 综上所述,C语言程序设计学生使用第五版PDF教材是一个非常好的选择。它们提供了方便的访问、搜索、标记和免费获取的优势,能够帮助学生更好地学习和掌握编程知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C0ntr01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值