C#基础 循环语句【for】

循环:反复执行某段代码。

1、循环四要素

  初始条件,循环条件,循环体,状态改变。

2、for 格式

for(初始条件;循环条件;状态改变)
{ 
         循环体
}

 

break ——中断循环,跳出整个循环

continue——停止本次循环,进入下次循环。

3、执行步骤

  初始条件——循环条件——循环体——状态改变    ——循环条件——循环体——状态改变——

 实例

//输出5遍“你好”,并将序号打印出来

 int xuhao = 1;
 for (int a = 0,a>5,a++)
 {
     Console.WriteLine( xuhao+"你好");
     xuhao++
 }

 //打印100以内的奇数,求和。

 int he = 0         //中间变量
for(int i =1;i<=100;i++)
{
    if (i%2==1)
     {
        Console.WriteLine(i);
        he=he + i
     }
}
Console.WriteLine(he);

 

4、for 可以与 if  互相嵌套

   先考虑把所有的数输出来,再从所有出来的结果中筛选。

 实例

 
//通关游戏,前十局每局对应相应的分数,十局以后每关都是20分。

Console.Write("请用户输入局数:");
int i = Convert.ToInt32(Console.ReadLine);
int zongfen = 0;
for(int j = 1;j<=i;j++)                            ① 
{
       if (j<=<1010)
       {
              zongfen = zongfen + j              ② 
       }
       else
       {
             zongfen = zongfen + 20           ③
       }
}
Console.WriteLine(zhongfen);

//用户输入的局数 先在①②内进行循环,当j<10后再进入 ①③进行循环
//③中开始循环的 zongfen 是①②循环完后的结果。

 

int a = 0
for (int i=0 ; i<30;i++)   
{
      a++                              ①
} 
for (int i=0 ; i<30;i++)   
{
      a++                             ②
} 
Cosole.WriteLine(a);

//输出结果为60,一个 for 循环就是一条命令,执行完①再执行②
//当执行②时变量已经被①改变。

 

 打印100以内所有的质数/素数,再求和

 1           int sum = 0;
 2             //循环2-100之间所有的数
 3             for (int j = 2; j <= 100; j++)
 4             {
 5                 int count = 0;
 6                 //在这循环查看当前循环的数能被整除几次
 7                 for (int i = 1; i <= j; i++)
 8                 {
 9                     if (j % i == 0)
10                     {
11                         count++;
12                     }
13                 }
14                 //如果被整除2次,说明就是质数
15                 if (count == 2)
16                 {
17                     sum += j;
18                     Console.WriteLine(j);
19                 }
20             }
21 
22             Console.WriteLine(sum);

 ●此案例中第二个 for 与第二个 if 平级,都同时位于一个 for 循环里,第二个 for 执行完一次后第二个 if 也会执行一次。

2使用一个for循环,分别打印出来100以内的奇数和偶数,分别求和
奇数:1,3,5,7.....
偶数:2,4,6,8.....
奇数和:xxx
偶数和:xxx

 1             string jishu = "";
 2             string oushu = "";
 3 
 4             int jishu1 = 0;
 5             int oushu1 = 0;
 6 
 7 
 8             for (int i = 1; i <= 100; i++)
 9             {
10                 if (i % 2 == 0)
11                 {
12                     oushu += i + ",";
13                     oushu1 += i;
14                 }
15                 else
16                 {
17                     jishu += i + ",";
18                     jishu1 += i;
19                 }
20             }
21 
22             Console.WriteLine("奇数:" + jishu);
23             Console.WriteLine("偶数:" + oushu);
24 
25             Console.WriteLine();
26             Console.WriteLine("奇数和"+jishu1);
27             Console.WriteLine("偶数和" + oushu1);
28 
29 
30             Console.ReadLine();

●此案例中出现的问题是如何将奇数偶数用一行打印,此案例利用隐式转换和字符的拼接

 

3、猜拳(三局两胜)输出手势如
 请输入您的手势:石头
 用户手势:石头      电脑手势:剪刀
 用户胜:1      电脑胜:0

 1             int u = 0;
 2             int c = 0;
 3 
 4             for (; ; )
 5             {
 6 
 7                 #region 手势生成
 8                 Console.Write("请输入您的手势(石头、剪刀、包袱):");
 9                 string user = Console.ReadLine();
10                 int user1;
11 
12                 if (user == "石头")
13                     user1 = 0;
14                 else if (user == "剪刀")
15                     user1 = 1;
16                 else
17                     user1 = 2;
18 
19                 Random r = new Random();
20                 int com = r.Next(0, 3);
21                 #endregion
22 
23                 #region 输出两位选手的手势
24                 string comEnd = "";
25 
26                 if (user != "剪刀" && user != "石头")
27                 {
28                     user = "包袱";
29                 }
30 
31                 if (com == 0)
32                     comEnd = "石头";
33                 else if (com == 1)
34                     comEnd = "剪刀";
35                 else
36                     comEnd = "包袱";
37 
38                 Console.WriteLine("用户手势:" + user + "\t电脑手势:" + comEnd);
39                 #endregion
40 
41                 #region 胜负判断
42                 if ((user1 == 0 && com == 1) || (user1 == 1 && com == 2) || (user1 == 2 && com == 0))
43                 {
44                     Console.WriteLine("用户胜利!");
45                     u++;
46                 }
47                 else if ((user1 == 0 && com == 2) || (user1 == 1 && com == 0) || (user1 == 2 && com == 1))
48                 {
49                     Console.WriteLine("用户失败!");
50                     c++;
51                 }
52                 else
53                 {
54                     Console.WriteLine("平局!");
55                 }
56                 #endregion
57 
58                 Console.WriteLine();
59                 Console.WriteLine("用户胜利" + u + "局,电脑胜利" + c + "");
60 
61                 if (u == 2)
62   {
63                     Console.ForegroundColor = ConsoleColor.Red;
64                     Console.WriteLine("用户获得最终胜利!");
65                     break;
66   }
67                 else if (c == 2)
68    {
69                     Console.ForegroundColor = ConsoleColor.Red;
70                     Console.WriteLine("电脑完成了五杀!");
71                     break;
72     }
73 
74                 Console.WriteLine("-----------下一局开始-----------");
75 
76             }
77 
78 
79 
80             Console.ReadLine();

●此案例是在 if 猜拳案例的基础上添加 for循环形成。在解决此类问题时可以先做出完成一次所需,在添加循环让其运转

 

                                               

 

posted @ 2017-02-25 19:58  唐宏昌  阅读(1238)  评论(0编辑  收藏  举报