• (原创)c#学习笔记04--流程控制04--循环03--for循环


    4.4.3 for循环

      这类循环可以执行指定的次数,并维护它自己的计数器。

      要定义for循环,需要下列信息:

        初始化计数器变量的一个起始值。

        继续循环的条件,它应涉及到计数器变量。

        在每次循环的最后,对计数器变量执行一个操作。

      例如,如果要在循环中,使计数器从1递增到10,递增量为1,则起始值为1,条件是计数器小于或等于10,在每次循环的最后,要执行的操作是给计数器加1。

      这些信息必须放在for循环的结构中,如下所示:

    for (<initialization>; <condition>; <operation>) 
    { 
        <code to loop> 
    } 

      它的工作方式与下述while循环完全相同:

    <initialization> 
    while (<condition>) 
    { 
        <code to loop> 
        <operation> 
    } 

      循环输出从1~10的数字。下面看看如何使用for循环完成这个任务:

    int i; 
    for (i = 1; i <= 10; ++i) 
    { 
        Console.WriteLine("{0}", i); 
    } 

      最后要注意的是,可以把计数器变量声明为for语句的一部分,重新编写上述代码,如下所示:

    for (int i = 1; i <= 10; ++i) 
    { 
        Console.WriteLine("{0}", i); 
    } 

      但如果这么做,就不能在循环外部使用变量i(参见第6章中的“变量作用域”一节)。

      下面看一个示例,他将:显示一个Mandelbrot集合(使用纯文本字符,看起来不会那么吸引人)!,代码如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace Ch04Ex06
    {
        class Program
        {
            static void Main(string[] args)
            {
                double realCoord, imagCoord;
                double realTemp, imagTemp, realTemp2, arg;
                int iterations;
                for( imagCoord =1.2; imagCoord >= -1.2; imagCoord -= 0.05 ) {
                    for( realCoord = -0.6; realCoord <= 1.77; realCoord += 0.03 ) {
                        iterations = 0;
                        realTemp = realCoord;
                        imagTemp = imagCoord;
                        arg = ( realCoord * realCoord ) + ( imagCoord * imagCoord );
                        while( ( arg < 4 ) && ( iterations < 40 ) ) {
                            realTemp2 = ( realTemp * realTemp ) - ( imagTemp * imagTemp ) - realCoord;
                            imagTemp = (2 * realTemp * imagTemp) - imagCoord;
                            realTemp = realTemp2;
                            arg = ( realTemp * realTemp ) + ( imagTemp * imagTemp );
                            iterations += 1;
                        }
            
                        switch( iterations % 4 ) {
                            case 0:
                                Console.Write( "." );
                                break;
                            case 1:
                                Console.Write( "o" );
                                break;
                            case 2:
                                Console.Write( "O" );
                                break;
                            case 3:
                                Console.Write( "@" );
                                break;
                        }
                    }
                    Console.Write( "
    " );  // 换行
    } Console.ReadKey(); } } }

      运行结果如下:

  • 相关阅读:
    其他综合收益的会计处理
    公允价值变动损益与投资收益的区别是什么?
    公允价值变动损益属于什么科目
    交易性金融资产和其他权益工具投资的区别
    属于在某一时段内履行的履约义务的情形
    合同履约成本和合同取得成本
    linux find查找并拷贝 exec xargs区别[转载]
    centos 安装discuz
    批处理变量,扩展,及变量截取
    常用DDL
  • 原文地址:https://www.cnblogs.com/wodehao0808/p/4899161.html
Copyright © 2020-2023  润新知