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();
}
}
}