2020.7.15 c#转换符 运算符 if语句 swith语句 函数 随机数的生成,判断字符是否为空 占位符
2020-07-15 20:49
661 查看
day2
显示转换
小数据类型 变量 =(小数据类型)变量;
↑必须都是数字类型
强制转换符:
string->int
convert.to类型;
例:
string str=console.ReadLine(); int age=convert.toint32; system.console.wroteline(“我的年龄是”+age+“岁”);
隐式转换
不会导致数据丢失,不需要任何语法,小转大自动转换
运算符
关系运算符
大于>,<小于,
<=大于等于,>=小于等于,
==等于,!=不等于
返回的是一个bool值
逻辑运算符
&按位与运算 转换成二进制运算(一假全假
18&6 == 2
10010
00110
———
00010
| 按位或运算(一真全真
18 | 6 == 22
10010
00110
———
10110
&& 短路与运算(且
左右放俩bool数值
||短路或运算(或
!非
c#的三大结构
顺序结构
分支结构(条件判断
if if…else
循环结构
if语句
if(条件表达式) { 语句; }
当条件表达式为true,则执行大括号中的所有语句,没满足就跳过大括号里的语句
三目运算符
布尔类型 ? 结果a :结果b;
如果布尔为true 则结果是a,否则是b
例:
A > B ? A : B
若A>B,结果是a
if的第三种形式
if() { 语句; } else if() { 语句二; } ———— else { 语句n; }
如果第一个为真,执行第一个,如果一为假就执行后面的
switch语句
switch(表达式/变量-大多情况下都是变量) { case 值 :{语句1;break;} case 值2 :{语句2;break;} default:{语句n+1;break;}=》等价于else }
根据表达式的值查找与值匹配的分支,直到遇到break,遇到break则跳出swith继续往下,如果没匹配到就执行default后面的语句然后跳出
函数
在静态的方法里面调用函数也需要是静态的(static)
修饰符 返回类型 函数名称 (传参数的) { 代码块 }
(void->不需要任何返回值)
//调用函数
函数名 ( ) ;
if (string.IsNullOrEmpty(name))
判断name字段是否为空
hp = new Random().Next(90,110);
新生成一个随机数 ↑随机范围(包含
下限不包含上限
Console.WriteLine("恭喜,角色创建成功!您的角色名称为:{0},初始血量为:{1},攻击力为:{2}, 速度为:{3}",name,hp,atk,speed);
{0}占位符,字符串后面按顺序添加变量
练习
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace day02 { class Program { //姓名 static string name = ""; //最大血量 static int hp; //当前血量 static int c_hp; //成长 static int g_hp; //攻击力 static int atk; //成长攻击 static int g_atk; //速度 static int speed; //成长速度 static int g_speed; //等级 1000exp=1Level static int level = 1; //经验 static int exp = 100; //当前经验值 static int c_exp = 0; //金币 static int money = 10; //幸运值 static int lucky; static string pyz = "排云掌"; //创建角色 static void creatrCharacter() { //系统提示 Console.WriteLine("请输入你的角色名称:"); name = Console.ReadLine(); //判断name字段是否是空值 if (string.IsNullOrEmpty(name)) { //默认名称 name = "起不起名"; } //血量 hp = new Random().Next(90,110); //给当前血量赋值 c_hp = hp; //成长血量 g_hp = new Random().Next(7,12); //攻击力 atk = new Random().Next(7,12); //成长攻击 g_atk = new Random().Next(2, 5); //速度 speed = new Random().Next(90,110); //成长速度 g_speed = new Random().Next(10,16); //幸运值 lucky = new Random().Next(1,200); //给出提示 Console.WriteLine("恭喜,角色创建成功!您的角色名称为:{0}," + "初始血量为:{1},攻击力为:{2},速度为:{3}",name,hp,atk,speed); //基础属性总和 int num = hp + speed + atk; //成长数值总和19-30 int num2 = g_atk + g_hp + g_speed; //判断人物属性给出提示 if (num<200 ) { //系统提示 Console.WriteLine("你的角色有点子弱"); } else if (num>=200 &&num<=210) { //判断人物属性给出提示 Console.WriteLine("属性也就一般般! "); } else { //判断人物属性给出提示 Console.WriteLine("不愧是你,你就是欧皇本黄!!!"); } if (num2<=23) { //判断人物成长属性给出提示 Console.WriteLine("嘶,你不太行啊这个潜力 "); } else if (num2>=23&&num2<=27) { //判断人物成长属性给出提示 Console.WriteLine("潜力中等,我觉得海星 "); } else { //判断人物成长属性给出提示 Console.WriteLine("不愧是你,潜力牛批"); } } //新手村 static void xinShouCun() { //提示 Console.WriteLine("您的前方有一名乞丐,另外一侧站在一位看起来很富有的人" + ",请问你要同谁对话"); Console.WriteLine("1.乞丐 2.富有的人 3.谁都不理"); //获取玩家选择 string str = Console.ReadLine(); //判断玩家选择 if (str == "1" ) { //乞丐 //系统提示 Console.WriteLine("乞丐觉得你根骨奇佳,掏出一本绝世武功"); //判断事件几率 if (new Random().Next(0,100) >70) { //残废 //减掉当前血量30点 c_hp -= 30; //减掉基础速度5点 speed -= 5; //系统提示失败 Console.WriteLine("学武走火入魔,掉了30点血"); } else { //成长属性提升 //成长血量+5 g_hp += 5; //成长攻击力+1 g_atk += 1; //成长速度+5 g_speed += 5; //系统提示成功 Console.WriteLine("少侠领悟超群,学会了绝世武功,感觉神清气爽,各项属性有所提升"); } } //判断玩家选择 else if (str == "2") { //富有的人 //判断事件几率 if (new Random().Next(0, 100) > 70 ||lucky>=130) { //得到钱 //获得20金币 money += 20; //系统提示事件方向 Console.WriteLine("富豪觉得你很有潜力,给了你20金币让你出去历练"); } else { //破产了 //扣掉9金币 money -= 9; //系统提示事件方向 Console.WriteLine("富豪心情不好,叫人打了你一顿,损失9金币qaq"); } } //离开新手村提示 Console.WriteLine("伴着村名的鼓励声,你离开了新手村,向长安进发"); //判断玩家幸运值触发隐藏事件 if (lucky>=130) { //系统提示 Console.WriteLine("在离开村子的路上,不经意间崴到脚滚到了一个神秘的山洞中,看到一具白骨,在白骨边上放了一本武功秘籍,你经不住好奇拿起来翻看"); //判断攻击力走向不同分支 if( g_atk >= 4) { //判断事件方向(概率 if (new Random().Next(0,100)<=70) { //攻击力+5 atk += 5; //系统提示事件走向 Console.WriteLine("少侠骨骼清奇,领悟奇佳,感到武学上有所领悟(攻击力增加了)"); } else { //当前血量-10 c_hp -= 10; //系统提示事件走向 Console.WriteLine("少侠因心境不稳走火入魔,减少了10点血"); } } } } //查看信息 static void ShowInfo() { Console.WriteLine("您当前的属性是:" + "hp:{0}/{1},攻击力:{2},速度:{3},当前金钱:{4},当前等级:{5},当前经验:{6}/{7}" ,c_hp,hp,atk,speed,money,level,c_exp,exp); } //郊区 static void jiaoQu() { //提示 Console.WriteLine("村口站着一位背着行囊的商人,是否对话"); Console.WriteLine("1.对话 2.抢劫"); //获取用户选择 string str = Console.ReadLine(); //判断用户选择 if (str == "1") { //对话 Console.WriteLine("商人笑眯眯的看着你说道:“只要给我20金币,就能让你脱胎换骨,一飞冲天!"); Console.WriteLine("1.给了给了 2.拉倒没钱"); //获取用户选择 string str1 = Console.ReadLine(); //判断用户选择以及金币数量 if (str1 == "1" && money>=20) { //扣掉20金币 money -= 20; //血上限+10 hp += 10; //攻击力+2 atk += 2; //速度+8 speed += 8; //提示 Console.WriteLine("你感到一阵神清气爽,武学上有所领悟(属性提升)"); //查看人物属性 ShowInfo(); } else { //系统提示 Console.WriteLine("商人一脸不屑的看了你一眼离开了这个位置"); } } //判断用户选择 else if(str == "2") { //计算人物初始属性 int num = hp + speed + atk; //抢劫 //判断人物属性是否足够抢劫 if (num>210||lucky>=180) { //获得30金币 money += 30; //获得100点经验 c_exp += 100; //系统提示 Console.WriteLine("你掏出了一把刀,商人落荒而逃,获得了30金币,获得了100经验"); //查看人物属性 ShowInfo(); } else { //如果不成功扣掉当前10血量 c_hp -= 10; //系统提示 Console.WriteLine("抢劫失败,商人鄙视的看了你一眼并且把你打了一顿,掉了10点血"); } } //遇到野怪提示 Console.WriteLine("你遇到了一匹野生的疯狗,要跑路吗?"); Console.WriteLine("1.跑啥干他! 2.告辞告辞打不过"); //获取用户选择 string str2 = Console.ReadLine(); //判断用户选择 if (str2 == "1") { //设置野怪血量 int gouHp= 30; //设置野怪攻击力 int gouAtk = 4; //设置野怪速度 int gouSpeed = new Random().Next(90,120); //打野怪,如果玩家和野怪都活着就继续循环 while (gouHp>=0&&c_hp>=0) { //判断玩家和野怪的速度,如果玩家比野怪快就玩家先攻击 if (speed > gouSpeed) { //系统提示玩家攻击 Console.WriteLine("你打了疯狗一拳,他掉了{0}点血", atk); //减掉野怪等同于玩家攻击力的血量 gouHp -= atk; //系统提示野怪攻击 Console.WriteLine("疯狗咬了你一下,你掉了{0}点血",gouAtk); //减掉玩家等同于野怪攻击力的当前血量 c_hp -= gouAtk; } else { //系统提示野怪攻击 Console.WriteLine("疯狗咬了你一下,你掉了{0}点血", gouAtk); //减掉玩家等同于野怪攻击力的当前血量 c_hp -= gouAtk; //系统提示玩家攻击 Console.WriteLine("你打了疯狗一拳,他掉了{0}点血", atk); //减掉野怪等同于玩家攻击力的血量 gouHp -= atk; } } //如果玩家血量小于等于0 if (c_hp<=0) { //系统提示死亡 Console.WriteLine("你被野狗攻击致死,请大侠重新来过"); //跳出整个main函数 //return; Environment.Exit(0); } //如果野怪的血量小于等于0 else if(gouHp<=0) { //获得10金币 money += 10; //获得40经验 c_exp += 40; //系统提示奖励 Console.WriteLine("恭喜大侠战胜野狗一条,获得10金币,获得40经验"); //查看当前玩家属性 ShowInfo(); } } } //升级系统 static void LevelUp() { //判断当前经验是否满足升级条件 if (c_exp >= exp) { //等级+1 level += 1; //当前经验值减去经验值上限 c_exp = c_exp - exp; //升级后血量上限提升 hp += g_hp; //把当前血量补满上限 c_hp = hp; //攻击力提升 atk += g_atk; //速度提升 speed += g_speed; //经验值上限提升 exp += 100; //系统提示 Console.WriteLine("恭喜大侠升级了!"); } } //补血系统 static void healthUp() { //判断当前血量 if (c_hp <= 5) { //提示 Console.WriteLine("可以使用1枚金币恢复血量,是否恢复"); Console.WriteLine("1.恢复 2.不了"); //获取用户选择 string str = Console.ReadLine(); //判断用户选择和金币数量 if (str == "1" && money >= 1) { //扣1金币回满血 money -= 1; c_hp = hp; Console.WriteLine("已经为少侠恢复血量"); //查看当前属性 ShowInfo(); } } } //技能 static void PaiYunZhang() { //技能伤害参数 int pyzAtk = atk + new Random().Next(3,5); //技能释放提示 Console.WriteLine("你使用了排云掌,造成了{0}点伤害",pyzAtk); } static void Main(string[] args) { //创建角色 creatrCharacter(); //查看信息 ShowInfo(); //新手村 xinShouCun(); //查看信息 ShowInfo(); //郊区 jiaoQu(); //升级系统 LevelUp(); //查看信息 ShowInfo(); } } }
相关文章推荐
- 随机数生成、检测非法字符、判断数字格式、是否为空、枚举值转化为数组
- 常用方法一:随机数生成、检测非法字符、判断数字格式、是否为空、枚举值转化为数组
- c语言:不用if,else语句,也不用循环条件等,输入一个字符,判断是否为大写字母
- c语言:不用if,else语句,也不用循环条件等,输入一个字符,判断是否为大写字母
- thinkphp模板if语句判断根据字符长度判断是否截取
- 通过一个函数或sql语句,随机生成任意6个字母组成的字符
- Java 判断语句中是否包含中文字符
- 华为机试-判断if语句括号是否合法
- sql语句判断字符串中是否包含另一个字符
- SQLSERVER ISNULL 函数与判断值是否为空的sql语句
- 判断字符是否为运算符及运算符优先级
- Strchr()函数是用来判断一个字符是否在一个字符串中出现 strtok
- 判断字符是否为字母,数字,小写字母,大写字母及大小写转化的函数
- 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。
- 请设计一个函数,用来判断在一个矩阵中是否存在一条包含某字符串所有字符的路径。路径可以从矩阵中的任意一个格子开始,每一步可以在矩阵中向左,向右,向上,向下移动一个格子。如果一条路径经过了矩阵中的某一个格子,则该路径不能再进入该格子。 例如 a b c e s f c s a d e e 矩阵中包含一条字符串"bccced"的路径,但是矩阵中不包含"abcb"路径,因为字符串的第一个字符b占据了矩阵中
- 类库------对一些字符串进行操作的类1.判断输入是否数字2.截取字符串函数3.过滤输入信息4.生成随机数5.生成验证码图片6.获取汉字第一个拼音7.半角转全角8.全角转半角
- 编写一个函数,判断两个字符串是否是是相互打乱的,也就是说它们有着相同的字符,但是对应不同的顺序。
- isdigit()函数——判断某一字符是否为数字
- 【C】C语言ispunct()函数:判断字符是否为标点符号或特殊字符
- 第一周第四天([大小写变换问题][判断是否为email][求对角线的值] [生成数组][数字中添加逗号][生成10个两位随机数,然后再进行排序] [复制数组||将指定数组的指定范围复制到新的数组])