• C#中的for循环语句的使用和for循环嵌套 穷举法


      for循环是程序语言开发中常见的技法之一,这类循环可以执行指定的次数,


    for循环比较适合于指定次数的应用,在使用时,需初始化一个作为计数器的变量值

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

      声明了for的计数器变量后,使用 ; 号隔开,接着添加条件判断的表达式(应涉及计数器变量) i <= 10,继续使用 ; 号隔开,添加对计数器变量的操作 i++(不用 ; 号结尾)。尝试把i++去掉,放在循环体内,也是可行的。

    int i, k;
    for(i = 1; i < 10; i++)
    {
        Console.Write("{0}: ", i);
        for(k = 1;k <= i; k++)
        {
            Console.Write("{0}x{1}={2} " ,k, i, i * k);
        }
        Console.WriteLine("
    ");
    }
    Console.ReadKey();
    

        这种for循环嵌套的方式,在实现横、纵循环的中断
    以前一直没记住,倒底是该用break还是用continue,不过下面这个例子,倒是很形象地描述清楚了向循环(输出、控制)是很有用的:

    int i = 1;
    while (i <= 10)
    {
        if (i == 6)
            break;
        Console.WriteLine("{0}", i++);
    }
    for (i = 1; i <= 10; i++)
    {
        if ( i % 2 == 0)
            continue;
        Console.WriteLine("{0}",i);
    }
    Console.ReadKey();
    

      其实两个都可以叫中断,只不过:break是中断当前的循环体(退出循环体),而continue是中断循环体的当次循环(不会退出循环体)。

     但for循环的格式使代码更易于阅读,因为其语法是在一个地方包括循环的全部规则,而不是把几个语句放在代码的不同地方.

    for循环嵌套

    最典型的就是九九乘法表

    for (int i = 1; i <= 9; i++)
                {
                    for (int j = 1; j <= i; j++)
                    {
                        Console.Write(j+"*"+i+"="+j*i+"	");
                    }
                    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是不管满不满足表达式,我都会先执行一遍。
    

      穷举法

    百鸡百钱:公鸡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();
    

      

  • 相关阅读:
    C语言开发框架、printf(day02)
    Linux C(day01)
    线程同步、信号量、system v IPC
    UDP、线程、mutex锁(day15)
    Socket编程(day14)
    共享内存、网络(day13)
    pause、jobs、setitimer(2)、system v ipc(day12)
    PIPE、SIGNAL(day11)
    环境变量、system(day10)
    进程(day09)
  • 原文地址:https://www.cnblogs.com/jiulinghoudabai/p/6477048.html
Copyright © 2020-2023  润新知