一、for循环拥有两类:

(一)、穷举:

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

1.单位给发了一张150元购物卡,拿着到超市买三类洗化用品。洗发水15元,香皂2元,牙刷5元。求刚好花完150元,有多少种买法,没种买法都是各买几样?

int ci = 0;

int biao = 0;//标记变量

for (int x = 0; x <= 10; x++)

{

for (int y = 0; y <= 30; y++)

{

for (int z = 0; z <= 75; z++)

{

ci++;

if (15 * x + y * 5 + z * 2 == 150)

{

biao++;

Console.WriteLine("第{0}种买法:洗发水{1}瓶,牙刷{2}支,香皂{3}块。", biao, x, y, z);

}

}

}

}

Console.WriteLine("总共有{0}种买法。", biao);

Console.WriteLine(ci);

Console.ReadLine();

2.百鸡百钱:公鸡2文钱一只,母鸡1文钱一只,小鸡半文钱一只,总共只有100文钱,如何在凑够100只鸡的情况下刚好花完100文钱?(或者大马驼2石粮食,中等马驼1石粮食,两头小马驼1石粮食,要用100匹马,驼100石粮食,该如何分配?)

int ci = 0;

for (int x = 0; x <= 50; x++)

{

for (int y = 0; y <= 100; y++)

{

for (int z = 0; z <= 200; z++)

{

if (2 * x + y + z * 0.5 == 100 && x + y + z == 100)

{

Console.WriteLine("公鸡{0}只,母鸡{1}只,小鸡{2}只。", x, y, z);

ci++;

}

}

}

}

Console.WriteLine(ci);

Console.ReadLine();

3. 有1分钱,2分钱,5分钱的硬币,要组合出来2角钱,有几种组合方式,分别各多少个?

int ci = 0;

for (int x = 0; x <= 100; x++)

{

for (int y = 0; y <= 50; y++)

{

for (int z = 0; z <= 20; z++)

{

if (x + 2 * y + 5 * z == 100)

{

Console.WriteLine("1分钱{0}枚,2分钱{1}枚,5分钱{2}枚。", x, y, z);

ci++;

}

}

}

}

Console.WriteLine(ci);

Console.ReadLine();

(二)、迭代:

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

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

int sum = 3;

for (int i = 1; i < 5; i++)

{

sum += 2;

}

Console.WriteLine(sum);

Console.ReadLine();

2.纸张可以无限次对折,纸张厚度为0.07毫米。问多少次对折至少可以超过8848?

double height = 0.07;

int ci = 0;

while (height <= 8848000)

{

ci++;

height *= 2;

}

Console.WriteLine(ci);

Console.ReadLine();

二、while循环

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++);//在中括号内给予值得改变方式

}

跳转语句:

break:跳出整个循环

continue:跳出本次循环,继续下次循环。

注:●do

{

循环体;

状态改变(i++);

}while(表达式(i<=5))

注意:do while是不管满不满足表达式,我都会先执行一遍。

●while死循环

while (true)//死循环一

{

循环体;

状态改变;

}

while (1 == 1)//死循环二

{

循环体;

状态改变;

}

While循环例题:

1、100节楼梯,前50节每节分数等于阶梯数,当到第30节时直接跳到第50节得100分, 51节开始每节10分

int n = 0;

int m = 0;

while (n < 100)

{

n++;

if (n <= 30)

{

m = m + n;

Console.WriteLine("到{0}层时的分数是{1}。", n, m);

}

if (n > 30 && n <= 50)

{

if (n == 50)

{

m += 100;

Console.WriteLine("到50层的分数" + m);

}

continue;

}

if (n > 50)

{

m += 10;

Console.WriteLine("到{0}层时的分数是{1}。", n, m);

}

}

Console.ReadLine();

2、do  while

增补循环语句一——for循环

1、有一对幼兔,幼兔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 m = int.Parse(Console.ReadLine ());

int a = 0, b = 0, c = 1, d = 1;

int i = 1;

for (; i <= m; i++)

{

if (i == 1)

{

a = 0;

b = 0;

c = 1;

}

else

{

a = b + a;

b = c;

c = a;

}

d = a + b + c;

}

Console.WriteLine("{0}个月后成兔对数是{1}", i, a);

Console.WriteLine("{0}个月后小兔对数是{1}", i, b);

Console.WriteLine("{0}个月后幼兔对数是{1}", i, c);

Console.WriteLine("{0}个月后兔总对数是{1}", i, d);

Console.ReadLine();

C#语句2——循环语句(for穷举、迭代和while循环)的更多相关文章

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

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

  2. C# 循环语句 for循环(嵌套 while 穷举 迭代)

    for循环的嵌套类似于if else 事例: 打印矩阵,外循环对应行,内循环对应列 for (int k = 1; k <= 5; k++) { for (int i = 1; i <= ...

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

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

  4. 穷举法、for循环、函数、作用域、斐波那契数

    1.穷举法 枚举所有可能性,直到得到正确的答案或者尝试完所有值. 穷举法经常是解决问题的最实用的方法,它实现起来热别容易,并且易于理解. 2.for循环 for语句一般形式如下: for variab ...

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

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

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

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

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

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

  8. 穷举 迭代 while

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

  9. java,for循环中的穷举、迭代、冒泡例题

    1.100以内与7相关的数 //100以内与7相关的数: public static void main1(String[] args) { for(int i=1;i<=100;i++){ i ...

  10. for循环语句以及迭代法和穷举法

    循环语句: 四要素:初始条件,循环条件,状态改变,循环体 for(初始条件;循环条件;状态改变){ //循环体} 案例1:打印等腰直角三角形和菱形 左上三角 static void Main(stri ...

随机推荐

  1. Nancy 引用源码与NuGet安装差异

    使用NuGet安装Nancy和直接引用源码项目存在一些差异,如序列化,授权验证问题. 如果引用源码的话,自定义JsonSerializer,如下: 注意,需要使用NuGet安装Newtonsoft.J ...

  2. 修复 XE8 for Android 方向传感器 headingX,Y,Z 不会动的问题

    问题:XE8 for Android 方向传感器无法正常运作(在 XE7 是正常的) 测试:官方示例 Samples\Object Pascal\Mobile Snippets\Orientation ...

  3. virtualenvwrapper安装使用

    安装 linux和mac下安装 pip install virutalenv virtualenvwrapper windows下安装 pip install virtualenvwrapper-wi ...

  4. mysql本地可以访问 网络不能访问

    远程登陆数据库的时候出现了下面出错信息: ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.xxx', 经过今天下午的 ...

  5. 用T4 Template生成代码

    1 T4语法 T4的语法与ASP.NET的方式比较类似.主要包括指令.文本块.控制块. 1.1    指令 指令主要包括template, output, assembly, import, incl ...

  6. (转载)Windows常见性能计数器(较好的说明)

    转载地址:http://blog.csdn.net/dfbrt56/article/details/3341591 Windows常见性能计数器 性能计数器(counter)是描述服务器或操作系统性能 ...

  7. 类似 Dribbble 下载按钮的 SVG 弹性动画进度条

    Codrops 发布了一个如何创建一个基于弹性效果的 SVG 加载进度条教程,基于 SVG 和 TweenMax 实现.按钮开始的时候是一个带有箭头的图标,一旦它被点击,动画成一个有趣的小金属丝和一个 ...

  8. 15款加速 Web 开发的 JavaScript 框架

    JavaScript 可以通过多种方式来创建交互式的网站和 Web 应用程序.利用 JavaScript,可以让你移动 HTML 元素,创建各种各样的自定义动画,给你的访问者更好的终端用户体验. 对于 ...

  9. 20个新鲜出炉的网站模板【HTML & PSD】

    这里给大家分享20 个新鲜出炉的免费网站模板.这些设计元素将成为你下一个项目的重要素材,可以帮你节省很多的时间.与往常一样,我们经常漫游网络,寻找最好的资源, HTML.CSS 和 PSD 等等,记得 ...

  10. 第三届“HTML5峰会”变身“iWeb峰会”8月来袭

    第三届“HTML5峰会”——2000人规模的“iWeb峰会”将于8月16日在北京召开.本次大会由HTML5梦工场主办,是在前两届“HTML5峰会”基础上的延伸和升华. 三年以来,HTML5梦工场致力于 ...