3.09课·········for循环
for循环:反复执行某段代码。
for循环四要素:初始条件,循环条件,循环体,状态改变。
for(初始条件;循环条件;状态改变)
{
循环体
}
若初始条件满足循环条件,则进入循环体,执行完循环体,跳回到状态改变,再判断是否满足循环条件,若满足,再进入循环体,直到不满足循环条件,则停止for循环。
break ——中断循环,跳出循环
continue——停止本次循环,
for (int a = /*初始条件*/; a <= /*循环条件*/; a++/*状态改变*/)
{
if (a == )
{
continue;//结束本次循环,继续下次循环
}
Console.WriteLine("你好!"); if (a == )
{
break;//跳出for循环
}
}
Console.ReadLine();//打印了9个“你好”
1.输入一个整数,计算从1加到这个数的结果
Console.Write("请输入一个正整数:");
int a = int.Parse(Console.ReadLine());
int sum = ;//0加任何数都不会变化
for (int i = ; i <= a; i++)
{
sum += i;//sum=sum+1
}
Console.WriteLine(sum);
Console.ReadLine();
2.输入一个正整数n,求1-n的阶乘
Console.Write("请输入一个正整数:");
int a = int.Parse(Console.ReadLine());
int b = ;//1乘以任何数都不变
for (int i = ; i <= a; i++)
{
b *= i;//b=b*i
}
Console.WriteLine(b);
Console.ReadLine();
3.输入一个整数,求1!+2!+···+n!
Console.Write("请输入一个整数:");
int n = int.Parse(Console.ReadLine());
int sum = ;
int sum1 = ;
for (int a = ; a <= n; a++)
{
sum1 *= a;//1~n的阶乘
sum += sum1;//1~n的阶乘之和
}
Console.Write(sum);
Console.ReadLine();
用for嵌套也可以:
Console.Write("请输入一个整数:");
int n = int.Parse(Console.ReadLine());
int sum = ;
for (int i = ; i <= n; i++)
{
int sum1 = ;
for (int j = ; j <= i; j++)
{
sum1 *= j; }
sum += sum1; }
Console.WriteLine(sum); Console.ReadLine();
4.:找出100以内与7有关的数并打印
(1).从1找到100
(2).找出与7有关的数
个位数是7 a%10==7
十位数是7 a/10 ==7
能被7整除 a%7 ==0
int s = ;//标记变量
for (int a = ; a <= ; a++)
{
if (a % == /*7的倍数*/|| a / == /*十位数是7*/ || a % == /*个位数是7*/)
{
s++;//满足条件就算一个
Console.WriteLine(a);
}
}
Console.WriteLine("总共" + s);//s为满足条件的个数
Console.ReadLine();
5.//一个游戏,前20关是每一关自身的分数,
//21-30关每一关是10分
//31-40关,每一关是20分
//41-49关,每一关是30分
//50关,是100分
//输入你现在闯到的关卡数,求你现在拥有的分数
两种做法:if嵌套for for嵌套if
第一种方法:if嵌套for
Console.Write("请输入关卡数:");
int s = int.Parse(Console.ReadLine());
int sum = ;
if (s >= && s <= )
{
if (s <= )//小于20关
{
for (int i = ; i <= s; i++)
{
sum += i;
}
}
else if (s <= )//21~30关
{
for (int i = ; i <= ; i++)//前20关的总分
{
sum += i;
}
for (int i = ; i <= s; i++)
{
sum += ;//sum = sum + 10,每一关加10分
}
}
else if (s <= )//31~40关
{
for (int i = ; i <= ; i++)
{
sum += i;
}
for (int i = ; i <= ; i++)
{
sum += ;
}//前30关总分
for (int i = ; i <= s; i++)
{
sum += ;//每一关加20分
}
}
else if (s <= )//41~49关
{
for (int i = ; i <= ; i++)
{
sum += i;
}
for (int i = ; i <= ; i++)
{
sum += ;
}
for (int i = ; i <= ; i++)
{
sum += ;
}
for (int i = ; i <= s; i++)
{
sum += ;//每一关加30分
}
}
else//s=50
{
for (int i = ; i <= ; i++)
{
sum += i;
}
for (int i = ; i <= ; i++)
{
sum += ;
}
for (int i = ; i <= ; i++)
{
sum += ;
}
for (int i = ; i <= ; i++)
{
sum += ;
}
sum += ;
}
}
else
{
Console.WriteLine("输入有误!");
}
Console.WriteLine("您的总分是:" + sum);
Console.ReadLine();
第二种方法:for嵌套if//更简便
Console.Write("请输入关卡数:");
int s = int.Parse(Console.ReadLine());
int sum = ;
if (s >= && s <= )
{
for (int i = ; i <= s; i++)
{
if (i >= && i <= )//1~20关
{
sum += i;
}
else if (i >= && i <= )//21~30关
{
sum += ;
}
else if (i >= && i <= )//31~40关
{
sum += ;
}
else if (i >= && i <= )//41~49关
{
sum += ;
}
else//50关
{
sum += ;
}
}
}
else
{
Console.WriteLine("您的输入有误!");
}
Console.WriteLine("您的总分是:" + sum);
Console.ReadLine();
3.有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问几年后有多少对兔子,幼兔、小兔、成兔对数分别是多少。成兔每月生下一对幼兔。
成兔对数 |
0 |
0 |
1 |
1 |
2 |
3 |
5 |
小兔对数 |
0 |
1 |
0 |
1 |
1 |
2 |
3 |
幼兔对数 |
1 |
0 |
1 |
1 |
2 |
3 |
5 |
月份 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
总对数 |
1 |
1 |
2 |
3 |
5 |
8 |
13 |
根据上表可以得到结论:
本月的成兔=上月的小兔+上月的成兔。
本月的小兔=上月的小兔。
本月的幼兔=本月的成兔。
Console.Write("请输入月份:");
int yue = int.Parse(Console.ReadLine());
int ct = , xt = , yt = , zt = ; for (int i = ; i <= yue; i++)
{
if (i == )//一月份的时候直接赋值所有兔子的个数
{
ct = ;
xt = ;
yt = ;
zt = ;
}
else
{
ct = xt + ct;//每月成兔等于上月小兔加上月成兔
xt = yt;//每月小兔等于上月幼兔
yt = ct;//每月幼兔等于上月成兔
}
zt = ct + xt + yt;//总兔对数
}
Console.WriteLine(yue + "个月后成兔对数为:" + ct);
Console.WriteLine(yue + "个月后小兔对数为:" + xt);
Console.WriteLine(yue + "个月后幼兔对数为:" + yt);
Console.WriteLine(yue + "个月后总兔对数为:" + zt);
Console.ReadLine();
最新文章
- 一次页面从Jq到Vuejs+PartialView的迁徙
- ajax+php+mysql 实现点赞、局部刷新,每个IP只能对一篇文章点赞一次
- [转载]Python中的sys模块
- powershell中使用超大内存对象
- Visual Studio下,打开资源视图rc文件,提示在另一个编辑器中打开
- 【WEB小工具】BaseServlet—一个Servlet处理多个请求
- iOS开发——基本常识篇&;各种控件默认高度
- windows Server 2008 -必须使用“角色管理工具”安装或配置Microsoft .Net Framework 3.5
- java属性文件读取,属性修改
- jsp验证表单后再提交
- .Net程序员学用Oracle系列(12):增删改查
- 前端面试题总结:HTML5,JS,CSS3,兼容性。
- 电脑突然使用不了复制粘贴快捷键,Ctrl+C和Ctrl+V没用
- hadoop2.x HDFS HA linux环境搭建
- 654. Maximum Binary Tree
- InnoDB体系架构(四)Master Thread工作方式
- Spring Schedule整合配置
- shell日常实战练习——通过监视用户登陆找到入侵者
- java中HashMap的基本方法使用
- 很实用的linux 上的svn安装和svnserver 的重启
热门文章
- UnrealEngine4 尝鲜
- android CheckBox控件的定义及事件监听
- Tomcat + Spring MVC + HttpClient:怎样使用PUT和PATCH方法传递数据
- hdu 5348 MZL&;#39;s endless loop
- Hibernate学习之类级别注解
- Linux系统控制文件 /etc/sysctl.conf详解
- 解决Incorrect integer value: &;#39;&;#39; for column &;#39;id&;#39; at row 1的方法
- SpringMvc 面向切面1
- 自定义cginc文件
- Linux时间时区详解与常用时间函数