for循环的嵌套类似于if else

事例:
打印矩阵,外循环对应行,内循环对应列

for (int k = 1; k <= 5; k++)
{
for (int i = 1; i <= 5; i++)
{
Console.Write("■");
}
Console.WriteLine();
}

打印左下角是直角的三角形
for (int i = 1; i <= 5; i++)
{
for (int j = 1; j <= i; j++)
{
Console.Write("■");
}
Console.WriteLine();
}

打印左上角是直角的三角形
for (int i = 1; i <= 5; i++)
{
for (int j = 5; j >= i; j--)
{
Console.Write("■");
}
Console.WriteLine();
}

打印右下角是直角的三角形
for (int i = 1; i <= 5; i++)
{
for (int k = 1; k <= 5 - i; k++)
{
Console.Write(" ");
}
for (int j = 1; j <= i; j++)
{
Console.Write("■");
}
Console.WriteLine();
}

打印右上角是直角的三角形
for (int i = 1; i <= 5; i++)
{
for (int k = 2; k <= i; k++)
{
Console.Write(" ");
}
for (int j = 5; j >= i; j--)
{
Console.Write("■");
}
Console.WriteLine();
}

请输入一个正整数,
根据这个数打印一个两边长度为这个数的
直角在右下角的三角形
Console.Write("请输入一个正整数:");
int a = int.Parse(Console.ReadLine());
for (int i = 1; i <= a; i++)
{
for (int j = 1; j <= a - i; j++)
{
Console.Write(" ");
}
for (int k = 1; k <= i; k++)
{
Console.Write("■");
}
Console.WriteLine();
}
Console.ReadLine();

输入一个整数,求1!+2!+...+n!
Console.Write("请输入一个正整数:");
int a = int.Parse(Console.ReadLine());
int sum = 0;
for (int i = 1; i <= a; i++)
{
int jie = 1;
for (int j = 1; j <= i; j++)
{
jie *= j;
}
sum += jie;
}
Console.WriteLine(sum);

99口诀表
for (int i = 1; i <= 9; i++)
{
for (int j = 1; j <= i; j++)
{
Console.Write(j+"*"+i+"="+j*i+"\t");
}
Console.WriteLine();
}

Console.ReadLine();

while 循环

其实是for循环的变形写法
for(int i = 1; i<=5;i++)
{
循环体;
}
上面的for循环可以写成
int i= 1;
for(;i<=5;)
{
循环体;
i++;
}
写成while就是以下样式
int i= 1;
while(表达式(i<=5))
{
循环体;
状态改变(i++);
}

do
{
循环体;
状态改变(i++);
}while(表达式(i<=5))
注意:do while是不管满不满足表达式,我都会先执行一遍。

举例应用:

折纸:0.07mm,对折多少次能够超过珠峰高度(8848m)
int ci = 0;
double height = 0.07;
while (height < 8848000)
{
height *= 2;
ci++;
}

while (1 == 1)
{
height *= 2;
ci++;
if (height >= 8848000)
{
break;
}
}
Console.WriteLine(ci);
Console.ReadLine();

使用while循环做99口诀表
int i = 1;

while (i <= 9)
{
int j = 1;
while (j <= i)
{
Console.Write(j+"*"+i+"="+j*i+"\t");
j++;
}
Console.WriteLine();
i++;
}
Console.ReadLine();

穷举

把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况。

举例应用:

单位给发了一张150元购物卡,
拿着到超市买三类洗化用品。
洗发水15元,香皂2元,牙刷5元。
求刚好花完150元,有多少种买法,每种买法都是各买几样?
int sum = 0;
int zong = 0;
for (int x = 0; x <= 10; x++)
{
for (int y = 0; y <= 30; y++)
{
for (int z = 0; z <= 75; z++)
{
zong++;
if (x * 15 + y * 5 + z * 2 == 150)
{
sum++;
Console.WriteLine("第{0}种买法:洗发水{1}瓶,香皂{2}块,牙刷{3}支。",sum,x,z,y);
}
}
}
}
Console.WriteLine("总共有"+sum+"种买法。");
Console.WriteLine(zong);
Console.ReadLine();

百鸡百钱:公鸡2文,母鸡1文,小鸡半文钱
int a=0;
for (int g = 0; g <= 50; g++)
{
for (int m = 0; m <= 100; m++)
{
for (int x = 0; x <= 200; x++)
{
if (g + m + x == 100 && g * 2 + m + x * 0.5 == 100)
{
Console.WriteLine(g + "只公鸡" + m + "只母鸡" + x + "只小鸡");
a++;
}
}
}
}
Console.WriteLine(a);
Console.ReadLine();

迭代

从初始情况按照规律不断求解中间情况,最终推导出结果。

举例应用:

纸张可以无限次对折,纸张厚度为0.07毫米。
问多少次对折至少可以超过8848米?
8848米=8848000
double height = 0.07;
int ci = 0;
for (; ; )
{
height *= 2;
ci++;
Console.WriteLine(ci + "次,现在的高度是:" + height / 1000 + "米。");
if (height >= 8848000)
{
break;//跳出整个循环
}
}
Console.ReadLine();

五个小朋友排成一队,问第一个多大了,
第一个说比第二个大两岁,问第二个多大了,
第二个说比第三个大两岁。。。以此类推,
问第5个小朋友,说自己3岁了。问第一个小朋友几岁了?

int m = 3;
for (int i = 1; i <= 4; i++)
{
m += 2;
}
Console.WriteLine("第一个小朋友{0}岁了。",m);
Console.ReadLine();

大马驼2石粮食,中等马驼1石粮食,两头小马驼1石粮食,
要用100匹马,驼100石粮食,该如何分配?
for (int d=0;d<=100 ;d++ )//d为大马
{
for (int z=0;z<=100 ;z++ )//z为中马
{
for (int x=0;x<=100 ;x++ )//z为小马
{
if (d +z+x==100&&2*d+z+0.5*x==100)
{
Console.WriteLine("大马"+d+"匹,中马"+z+"匹,小马"+x+"匹");
}
}
}
}
Console.ReadLine ();

4.有1分钱,2分钱,5分钱的硬币,

要组合出来1.5元钱,有几种组合方式,分别各多少个?
int n = 0;
for (int a = 0; a <= 150; a++)
{
for (int b = 0; b <= 75; b++)
{ for(int c=0;c<=30;c++)
{
if (a + 2 * b + 5 * c == 150)
{
Console.WriteLine("1分钱的"+a+"二分钱的"+b+"三分钱的"+c);
n++; }
}
}
}Console.WriteLine("组合方式有"+n);
Console.ReadLine();

C# 循环语句 for循环(嵌套 while 穷举 迭代)的更多相关文章

  1. 循环语句while与for的穷举迭代

    循环语句while while当...的时候 int n=1; while(n<6)//在括号内直接限制逻辑关系 {//需要在大括号内给出改变方式,否则将进入死循环 console.WriteL ...

  2. for循环的嵌套,for循环的穷举迭代

    for循环的嵌套            输入一个正整数,求阶乘的和 嵌套            Console.Write("请输入一个正整数:");            int ...

  3. c#循环语句 for 循环嵌套的练习。还有跳转语句,异常语句,迭代穷举介绍

    先说一下循环嵌套:循环嵌套就是再一个循环里面再放一个循环,也就是说如果没一个循环都循环10次,那么第一个循环是1的时候,嵌套的循环会循环十次.也就是10*10的效果. for 循环语句 主要还是逻辑思 ...

  4. 6、C#基础整理(for 语句经典习题--for循环嵌套、穷举)

    1.for循环嵌套----最基础题目:求阶乘的和 ; int n = int.Parse(Console.ReadLine()); ; i < n; i++) { ;//定义变量sum1,每次循 ...

  5. for循环嵌套的穷举,迭代,以及while的使用和for的转换

    for循环的穷举.解决多种方法做种组合问题,代替人脑的大量计算 穷举例子 迭代,寻找一定的规律.然后利用循环找出结果 迭代举例 以五个小朋友3岁,之前的每一个小朋友都比序号在后的小朋友大两岁.温,第一 ...

  6. while、dowhile、switchcase 循环嵌套、穷举、迭代

    for(var i=0;i<5;i++)//假如规定到5 { document.write("123456<br/>") } 如果变成这样 var i=0: fo ...

  7. 007.Python循环语句while循环嵌套

    1 使用两个循环打印十行小星星 j = 0 while j<10: # 打印一行十个小星星 i = 0 while i<10: print("*",end=" ...

  8. 循环语句 for循环、while循环、do while循环

    循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下 ...

  9. 穷举 迭代 while

    for循环拥有两类: 穷举: 把所有可能的情况都走一遍,使用if条件筛选出来满足条件的情况. 例:1.单位给发了一张150元购物卡,拿着到超市买三类洗化用品.洗发水15元,香皂2元,牙刷5元.求刚好花 ...

随机推荐

  1. POJ 2096 Collecting Bugs

    Collecting Bugs Time Limit: 10000MS   Memory Limit: 64000K Total Submissions: 1716   Accepted: 783 C ...

  2. 细数Qt开发的各种坑(欢迎围观)

    1:Qt的版本多到你数都数不清,多到你开始怀疑人生.从4.6开始到5.8,从MSVC编译器到MINGW编译器,从32位到64位,从Windows到Linux到MAC.MSVC版本还必须安装对应的VS2 ...

  3. 那些年我们赚过的外快(POS(移动支付)接口开发)

    老规矩上前戏了.在我写博文"那些年我们赚过的外快"前后算起来大大小小也接了些私活,这次是因为好久没写博客了,趁热分享一下.最近回了离老家近的二线城市成都工作,收入那是下降很多啊,刚 ...

  4. 读书笔记_Effective_C++_条款四十四:将与参数无关的代码抽离template

    标题上说“将与参数无关的代码抽离template”,这里的参数既可以指类型,也可以是非类型,我们先来看看非类型的情况. 假定我们要为矩阵写一个类,这个矩阵的行列元素个数相等,是一个方阵,因而我们可以对 ...

  5. devexpress表格控件gridcontrol设置隔行变色、焦点行颜色、设置(改变)显示值、固定列不移动(附源码)

    介绍一些常用的gridcontrol设置. 1.设置隔行变色.首先设置显示隔行变色,步骤:OptionsView-->EnableAppearanceEvenRow-->true和Opti ...

  6. ORM:ODB安装使用过程

      1.下载odb-2.4.0-i686-windows,是cpp和sql文件生成工具,已经编译好了,如果下odb-2.4.0估计是未编译好的这个项目:   2.将...\odb-2.4.0-i686 ...

  7. MyBatis知多少(8)关系型数据库

    MyBatis的存在就是为了简化对关系数据库的访问.数据库的确非常复杂,要正确地使用它们需要做很多的工作.数据库负责管理数据和修改数据.我们使用数据库而不简简单单地使用一个 平板文件的原因就在于数据库 ...

  8. IDL中histogram的应用

    前面一段时间在使用Histogram时一直是不能更好的理解其中的奥秘,通过阅读帮助以及查看相应的文档,终于理解了其中的玄机,很多时候是因为在学习的时候英文不知道翻译成什么样的内容比较合理,这样就给后面 ...

  9. Uvaoj 11248 Frequency Hopping(Dinic求最小割)

    题意:1到n节点(节点之间有一定的容量),需要流过C的流量,问是否可以?如果可以输出possible, 否则如果可以扩大任意一条边的容量 可以达到目的,那么输出possible option:接着输出 ...

  10. window xp Apache与Tomcat集群配置--转载

    转载地址:http://www.cnblogs.com/obullxl/archive/2011/06/09/apache-tomcat-cluster-config.html 一. 环境说明 Win ...