c#的循环有四种方式。
for循环
for(创建并初始化循环值;循环条件;改变循环条件的值)
{
循环体
}
案例:
for(int i=0;i<5;i++) { ; }
for循环中按照顺序执行,创建值,判断条件 ,更改值,执行循环内容,因此,在第三个值中i++与++i其实表达的内容一模一样。 当语句只有一行的时候,也可以省略花括号,更加简便。
while循环
此循环通过判断while()括号内的条件,返回一个布尔值(true 与false)来执行循环
int a=5 ; int b=1; while(b<a) { b++; }
切记在while的循环体内要写跳出循环的方法,来终止括号内的判断条件,否则无法跳出,就成了死循环。
do{
}
whlie();
此循环作中 ,循环体内语句一定会被执行一次。执行完第一次后才会进入判断条件,如果while中值为true,则返回do后的循环体中再一次运行。
int a=1; do { a++; } whlie(a>=5);
foreach(数据类型 in 数组 );
{
}
这个循环一般只作于遍历输出数组,
int[] b = new int[]{1,2,3}; foreach(int a in b ) { Console.WriteLine(a); }
foreach中,先创建一个用于存储的类型,in后是要进行遍历的数组(从b[0]开始,到b数组的所有数都被输出后,遍历结束)。
最后就是放出文本游戏代码了,利用判断与循环完成的简单文本。选择宝可梦与小智战斗,输入数字键位来获得技能。敌人会根据生成的随机数来选择技能反击。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp5 { class Program { static void Main(string[] args) { int a; string c; string b = " 000\n 00000\n 000 "; string d;//名字 string jineng="喷射火焰",jineng1="藤鞭",jineng2 ="撞击",jineng3="十万伏特",jineng4="水溅跃",jineng5="断崖之剑",jineng6 = "画龙点睛"; string[] ji = new string[] { "喷射火焰", "藤鞭" , "撞击", "十万伏特", "水溅跃" , "断崖之剑" , "画龙点睛" }; //我方技能库 string[] ji1 = new string[] {"",jineng2,jineng3 }; //敌人技能库 Console.WriteLine("选择你的宝可梦"); for (int i = 1; i <=3; i++) Console.WriteLine("\n"+b+"\t"+i); c = Console.ReadLine(); a = Convert.ToInt32(c); string a1= "小火龙", a2 = "鲤鱼王", a3 = "妙蛙种子", a4 = "皮卡丘"; switch (a) { case 1: Console.WriteLine("你选择了小火龙"); d = a1; break; case 2: Console.WriteLine("你选择了鲤鱼王"); d = a2; break; case 3: Console.WriteLine("你选择了妙蛙种子"); d = a3; break; default: Console.WriteLine("选都能选歪来,给你个皮卡丘吧"); d = a4; break; } Console.WriteLine("开始进入战斗了,你选择的是"+d); Console.WriteLine("你的对手是来自真新镇的小智,他使用的宝可梦是皮卡丘"); int h=50,h1=h; //h为对方的hp string b1 = " 000\n 00000\n 000 \t假装是皮卡丘 "+"当前血量为"+h; string b2 = "000\n 00000\n 000 \t假装是" + d + "当前血量为" + h1; Console.WriteLine(b1); Console.WriteLine("放出你的宝可梦"+"\n"+b2 ); Console.WriteLine("使用你的技能(输入1~2)"); int j; c = Console.ReadLine(); j = Convert.ToInt32(c); if(h1>0) { int n = 0; while (n==0&&h1>0) { switch (j) { case 1: if (d == a1) { Console.WriteLine(d + "使用了" + ji[0]); h -= 15; Console.WriteLine("效果一般,造成了15点伤害,目标剩余血量" + h); } else if(d==a2) { Console.WriteLine(d + "使用了" + ji[4]); Console.WriteLine("然鹅无事发生,目标剩余血量" + h); } else if (d == a3) { Console.WriteLine(d + "使用了" + ji[1]); Console.WriteLine("效果一般,造成了15点伤害,目标剩余血量" + h); h -= 15; } else if (d == a4) { Console.WriteLine(d + "使用了" + ji[3]); Console.WriteLine("效果一般,造成了15点伤害,目标剩余血量" + h); h -= 15; } break; case 2: Console.WriteLine(d + "使用了" + ji[2]); h -= 16; Console.WriteLine("效果一般,造成了16点伤害,目标剩余血量" + h); break; default: if (d == a2) { Random rd2 = new Random(); int rd3 = rd2.Next(1, 4); if (rd3 == 2) { Console.WriteLine(d + "妄图挑战规则,他打算进化了" + ji[6] + "成功了!!!"); Console.WriteLine(d + "进化成了暴鲤龙,使用了" + ji[6]); h -= 9999; Console.WriteLine("效果拔群,造成了9999点伤害,目标剩余血量" + h); } else { Console.WriteLine(d + "妄图挑战规则,他打算进化了" + ji[5] + "很可惜失败了..."); } } else { Random rd2 = new Random(); int rd3 = rd2.Next(1, 5); if (rd3 == 2) { Console.WriteLine(d + "妄图挑战规则,他打算使出" + ji[5] + "成功了!!!"); Console.WriteLine(d + "使用了" + ji[5]); h -= 40; Console.WriteLine("效果绝佳,造成了40点伤害,目标剩余血量" + h); } else { Console.WriteLine(d + "妄图挑战规则,他打算使出" + ji[5] + "很可惜失败了..."); } } break; } if (h <= 0) { Console.WriteLine("战斗胜利!"); break; } Random rd = new Random(); int rd1 = rd.Next(1, 3); Console.WriteLine("小智的皮卡丘使用了"+ ji1[rd1]); if (rd1==1) { h1 -= 20; } else if (rd1 == 2) { h1 -= 10; } Console.WriteLine("你剩余血量为" + h1); if (h1 <= 0) { Console.WriteLine("战斗结束,你失败了!"); break; } Console.WriteLine("使用你的技能(输入1~2)"); c = Console.ReadLine(); j = Convert.ToInt32(c); } } Console.ReadLine(); } } }