(原创)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( "\n" );  // 换行            }
            Console.ReadKey();
        }
    }
}

  运行结果如下:

时间: 2024-10-20 08:12:44

(原创)c#学习笔记04--流程控制04--循环03--for循环的相关文章

python学习笔记3—流程控制if、for、while

流程控制if if 语句 if expression: statement(s) else else语句: if 语句,else语句 if expression: statement(s) else: statement(s) elif语句: if expression1: statement1(s) elif expression2(s): statements2(s) else: statement2(s) 注:Python使用缩进作为其语法分组的方法,建议使用4个空格 逻辑值(bool)包

【原】Java学习笔记005 - 流程控制

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 程序的流程控制(流程结构):顺序结构.选择结构.循环结构 6 7 // 顺序结构:从上向下,顺序执行 8 System.out.println("出生..."); 9 System.out.println("享受人生..."); 10 System.out.print

No2. 学习笔记_流程控制

1 import java.util.Scanner; 2 public class HelloForWhile { 3 4 /** 5 * 文档注释,程序名称:HelloForWhile 流程控制 开发时间:2016-03-07 作者:嘿嘿 6 * */ 7 public static void main(String[] args) { 8 // TODO Auto-generated method stub 9 System.out.println("test"); 10 int

JavaScript学习笔记——javascript流程控制

javascript流程控制流程:就是程序代码的执行顺序.流程控制:通过规定的语句让程序代码有条件的按照一定的方式执行. 一.顺序结构 按照书写顺序来执行,是程序中最基本的流程结构. 二.选择结构(分支结构.条件结构) 根据给定的条件有选择的执行形相应的语句. (1) if else if else 1.单路分支 //条件可以是表达式也可以是任何的数据类型 //大括号会把他里面的代码当作一个整体来运行,如果只有一条语句,可以省略大括号 if(条件){ 条件成立执行的语句 } 2.双路分支 if(

【原】Java学习笔记007 - 流程控制

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // for循环 6 // 格式 7 // for (int i = 初始值; i < value; i++) { 8 // 9 // } 10 // 口诀:左初值.右步长.条件在中间.处理在内部 11 // 1.左初值:声明一个变量并给变量赋值 12 // 2.右步长:控制左边声明的变量的变化幅度,为

Java学习笔记五——流程控制

分支结构 Java提供了两种常见的分支控制结构:if语句和switch语句. if语句 if语句使用布尔值或布尔表达式(表达式结果为布尔值),if语句有3中形式: 第一种形式: if (5 > 3) { System.out.println("5 > 3"); } 第二种形式: if (5 > 3) { System.out.println("5 > 3"); } else{ System.out.println("5 < 3

(原创)c#学习笔记04--流程控制04--循环04--循环中断和无限循环

4.4.4  循环的中断 有时需要更精细地控制循环代码的处理.C#为此提供了4个命令,其中的3个已经在其他情形中介绍过了:?  break——立即终止循环.?  continue——立即终止当前的循环(继续执行下一次循环).?  goto——可以跳出循环,到已标记好的位置上(如果希望代码易于阅读和理解,最好不要使用该命令).?  return——跳出循环及其包含的函数(参见第6章).?  break命令可退出循环,继续执行循环后面的第一行代码 4.4.5  无限循环 可以通过编写错误代码或错误的

(原创)c#学习笔记04--流程控制03--分支03--switch语句

4.3.3 switch语句 switch 语句非常类似于if 语句,因为它也是根据测试的值来有条件地执行代码.但是,switch语句可以一次将测试变量与多个值进行比较,而不是仅测试一个条件.这种测试仅限于离散的值,而不是像“大于X”这样的子句,所以它的用法有点不同,但它仍是一种强大的技术. switch语句的基本结构如下: switch (<testVar>) { case <comparisonVal1>: <code to execute if <testVar&

(原创)c#学习笔记04--流程控制02--goto语句

4.2 goto语句 C#允许给代码行加上标签,这样就可以使用goto语句直接跳转到这些代码行上.该语句优缺点并存.主要的优点是:这是控制什么时候执行哪些代码的一种简单方式.主要的缺点是:过多地使用这个技巧将使代码晦涩难懂. goto语句的用法如下: goto <labelName>; 标签用下述方式定义: <labelName>: 例如,下面的代码: int myInteger = 5; goto myLabel; myInteger += 10; myLabel: Consol

(原创)c#学习笔记04--流程控制03--分支01--三元运算符

4.3  分支 要跳转到的代码行由某个条件语句来控制.这个条件语句使用布尔逻辑,对测试值和一个或多个可能的值进行比较. 本节介绍C#中的3种分支技术: ?  三元运算符 ?  if语句 ?  switch语句 4.3.1  三元运算符 一元运算符有一个操作数,二元运算符有两个操作数,所以三元运算符有3个操作数.其语法如下: <test> ? <resultIfTrue>: <resultIfFalse> 其中,计算<test>可得到一个布尔值,运算符的结果根