C#流程控制语句--迭代语句(while,do....while, for , foreach)

迭代语句:有的时候,可能需要多次执行同一块代码。函数中的第一个语句先执行,接着是第二个语句,依此类推。

迭代语句:while(先检查后执行)

while(条件表达式 bool类型)

{

    代码语句

}

For example 

            int iNum = 1;       //iNum从1到100递增
            int iSum = 0;           //记录每次累加后的结果
            while (iNum <= 100)     //iNum <= 100 是循环条件
            {
                iSum += iNum;       //把每次的iNum的值累加到上次累加的结果中
                iNum++;         //每次循环iNum的值加1
            }
            Console.WriteLine("1到100的累加结果是:" + iSum);   //输出结果
            Console.ReadLine();
            int N = 1;
            int iSum = 0;
            while (true)
            {
                iSum += N;
                if (iSum <= 500)
                    N = N + 2;
                else
                    break;
            }
            Console.WriteLine("1+3+5+…+n>500的最小正整数n的值为:" + N);
            Console.ReadLine();
            Console.WriteLine("——————猜数字游戏——————\n");
            int iNum;
            int iGuess;
            Random rand = new Random();
            iNum = rand.Next(1, 200);//生成1到200之间的随机数
            Console.Write("请输入你猜的数字:");
            iGuess = Convert.ToInt32(Console.ReadLine());//输入首次猜测的数字
            while ((iGuess != -1) && (iGuess != iNum))
            {
                if (iGuess < iNum)//若猜测的数字小于基准数,则提示用户输入的数太小,并让用户重新输入
                {
                    Console.Write("太小,请重新输入:");
                    iGuess = Convert.ToInt32(Console.ReadLine());
                }
                else//若猜测的数字大于基准数,则提示用户输入的数太大,并让用户重新输入
                {
                    Console.Write("太大,请重新输入:");
                    iGuess = Convert.ToInt32(Console.ReadLine());
                }
            }
            if (iGuess == -1)//若最后一次输入的数字是-1,循环结束的原因是用户选择退出游戏
            {
                Console.WriteLine("退出游戏!");
            }
            else//若最后一次输入的数字不是-1,用户猜对数字,获得成功,游戏结束
            {
                Console.WriteLine("恭喜你,你赢了,猜中的数字是:" + iNum);
            }
            Console.WriteLine("\n———————游戏结束———————");
            Console.ReadLine();

迭代语句:do....while(先执行后检查至少执行一次)

do 

{

代码语句

}while(表达式条件bool)

For example

            Console.WriteLine("请输入一个整数:");
            int iNum = Convert.ToInt32(Console.ReadLine());//记录输入的数据
            int iResult = 1;//记录结果
            do
            {
                iResult *= iNum;//执行相乘操作
                iNum--;//值减一
            } while (iNum > 0);//设置判断条件
            Console.WriteLine("阶乘结果是:" + iResult);//输出结果
            Console.ReadLine();
int iNum = 1;                           //iNum从1到100递增
            int iSum = 0;                               //记录每次累加后的结果
            do
            {
                iSum += iNum;                           //把每次的iNum的值累加到上次累加的结果中
                iNum++;                                 //每次循环iNum的值加1
            } while (iNum <= 100);                  //iNum <= 100 是循环条件
            Console.WriteLine("1到100的累加结果是:" + iSum);//输出结果
            Console.ReadLine();

迭代语句for

for(初始条件;判断条件;循环条件)

{

循环语句;

}

For example

            int iSum = 0;
            int iNum;
            for (iNum = 1; iNum <= 100; iNum++)
            {
                if ((iNum % 2) != 0)  //判断是否为奇数
                    iSum += iNum;  //若是奇数,则进行累加
            }
            Console.WriteLine("1到100之间的奇数的和:" + iSum);
            Console.ReadLine();
            int iSum = 0;                               //记录每次累加后的结果
            for (int iNum = 1; iNum <= 100; iNum++)
            {
                iSum += iNum;                           //把每次的iNum的值累加到上次累加的结果中
            }
            Console.WriteLine("1到100的累加结果是:" + iSum);   //输出结果
            Console.ReadLine();

int iRow, iColumn;                                  //定义行数和列数
            for (iRow = 1; iRow < 10; iRow++)                       //行数循环
            {
                for (iColumn = 1; iColumn <= iRow; iColumn++)       //列数循环
                {
                    //输出每一行的数据
                    Console.Write("{0}*{1}={2} ", iColumn, iRow, iRow * iColumn);
                }
                Console.WriteLine();                            //换行
            }
            Console.ReadLine();
             for (int i = 1; i <= 5; i++)//输出5行的金字塔
{ for (int j = 1; j <= 5 - i; j++)//控制每一行的空白位置 { Console.Write(" "); } for (int k = 1; k <= 2 * i - 1; k++)//控制每一行的*个数 { Console.Write("*"); } Console.WriteLine();//换行 } Console.ReadLine();

迭代语句foreach

foreach(类型  变量 in 集合 )

{

代码体

}

For example

Console.WriteLine("请输入一个英文句子");
string str=Console.ReadLine("你输入的句子包含以下单词');
foreach(char word in str)
  {
     if (char.IsWhiteSpace(word))
       {
           Console.Write();
        }
  else
       {
           Console.Write(word);
        }
   }
    Console.ReadKey();

 

注:实例有三个部分:

  • 通过 foreach 循环输出整型数组中的元素。

  • 通过 for 循环输出整型数组中的元素。

  • foreach 循环设置数组元素的计算器。

foreach语句:

每执行一内含的代码时,循环变量就会依次读取集合中的一个元素。

此处的循环变量是一个只读型的局部变量,这个值如果被修改编译器会发生错误。

 

 

posted @ 2019-04-15 23:29  柏林下的星辰  阅读(420)  评论(0编辑  收藏  举报