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循环形成。在解决此类问题时可以先做出完成一次所需,在添加循环让其运转