# C#学习-关系运算符-逻辑运算符-if-switch

2021-08-12 11:04:42 浏览数 (1)

关系运算符

作用:描述前后表达式之间的大小关系,关系运算符的结果一定是一个bool类型

逻辑运算符

作用:描述前后表达式之间的逻辑关系,逻辑运算符的结果一定是一个bool类型

if语句

C#程序的三大结构 顺序结构:程序的入口都是Main函数,代码从上往下,从左往右,依次执行; 分支结构:当我们的程序执行到某个位置的时候,进行条件判断,根据判断的结果来执行不同的操作; 循环结构:在满足某个条件的时候反复执行一个语句序列(循环)。 *

其中if语句属于分支结构中的语句*

if语句的第一种形式

代码语言:javascript复制
if(条件表达式){
语句1;
} 

当条件表达式为真,执行大阔号中的所有语句(语句1),否则,跳过大括号中的所有语句,继续执行大括号后面的语句。

if语句的第二种形式

代码语言:javascript复制
if (条件表达式){ 
   语句1;}
else{ 
   语句2;
} 

当条件表达式为真,执行if大阔号中的所有语句(语句1),否则,执行else大括号中的所有语句(语句2)。

if语句的第三种形式(级联式)

代码语言:javascript复制
if (条件表达式1){    
语句1;
}
else if 
(条件表达式2){    
语句2;
}
else
{ 语句3;
} 

如果条件表达式1为真,执行语句1,如果条件表达式1为假,条件表达式2为真,执行语句2,如果条件表达式1与条件表达式2都为假,执行语句3;

练习 1.从控制台输入两个整数,并输出两个数中的最大值。

代码语言:javascript复制
                    string a = Console.ReadLine();
                    string b = Console.ReadLine();
                    int numb1 = Convert.ToInt32(a);
                    int numb2 = Convert.ToInt32(b);

                    if (numb1 > numb2){
                        Console.WriteLine(numb1);
                    }
                    else{
                        Console.WriteLine(numb2);
                    }

2.从控制台输入两个小数,并输出两个数中的最小值。

代码语言:javascript复制
 float c, d;
                    c = float.Parse(Console.ReadLine());
                    d = float.Parse(Console.ReadLine());
                    if (c<d) {
                        Console.WriteLine(c);
                    }
                    else
                    {
                        Console.WriteLine(d);
                    }

3.输入一个年份,判断该年份是否是闰年?如果是闰年,则输出该年是闰年,否则输出该年不是闰年。 闰年:能被400整除或者(能被4整除,但是不能被100整除)。

代码语言:javascript复制
int a;
            Console.WriteLine("请输入一个年份来判断是否为闰年");
            a = Convert.ToInt32(Console.ReadLine());
            if (a@0==0 && a%4==0 && a0!=0)
            {
                Console.WriteLine("该年为闰年");
            }
            else
            {
                Console.WriteLine("该年不是闰年");
            }

4.从键盘输入一个月份,如果是3-5,输出春季,如果是6-8,输出夏季,如果是9-11,输出秋季,如果是12-2,输出冬季。

代码语言:javascript复制
  int a;
            Console.WriteLine("请输入一个月份");
            a = Convert.ToInt32(Console.ReadLine());
            switch (a)
            {
                case 3:
                case 4:
                case 5:Console.WriteLine("该月份为春天");
                    break;
                case 7:
                case 8:
                case 6: Console.WriteLine("该月份为夏天");
                    break;
                case 9:
                case 10:
                case 11: Console.WriteLine("该月份为秋季");
                    break;
                default:
                    Console.WriteLine("该月份为冬季");
                    break;
            }

三目运算符

语法描述:布尔类型 ? 结果a : 结果b 结果:如果前面布尔类型为true,则结果为结果a,否则结果为结果b 举例: a > b ? a : b 即:如果a > b,则结果为a,否则结果为b

switch语句

语法规范

代码语言:javascript复制
switch(表达式)
{ 
   case值1:{语句1;break;}
   case值2:{语句1;break;}
   case值3:{语句1;break;}
   ......
   case值n:{语句1;break;}
   default:{语句n 1;break;}
}

执行过程: 根据表达式的值,去大括号中查找与该值相匹配的分支。 如果匹配成功,就立即执行分支后对应的语句,直到遇到break关键字,跳出switch继续往下执行。 如果没有匹配的结果,就执行default后的语句,直到遇到break关键字,结束switch语句。

break关键字 break用在switch…case中用于结束某个case,然后执行switch之外的语句。 注意事项 整个default语句都可以舍掉,default语句只能有一个。 case后边的标签只能是常量或者常量表达式,不能用变量作为case的标签。 case后面只要有操作,最后一定要加break。 多个case可以运行一个语句块。

练习 输入一个月份,打印该月份的天数

代码语言:javascript复制
    int a;
            Console.WriteLine("请输入一个月份");
            a = Convert.ToInt32(Console.ReadLine());
            switch (a)
            {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:Console.WriteLine("该月份总共31天");
                    break;
                case 4:
                case 6:
                case 9:
                case 11: Console.WriteLine("该月份总共31天");
                    break;
                default:
                    Console.WriteLine("闰年时29天,平年时28天");
                    break;
            }

文字游戏

代码语言:javascript复制
using System;
using System.Reflection.Metadata;

namespace test1
{
    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;        //成长速度
        static int level = 0;      //等级.1000经验升一级
        static int exp = 0;        //经验
        static int money = 10;      //金钱

       
        
            //新手村
            static void xinShouCun()
            {
            //引导
            Console.WriteLine("您的前方有一名乞丐,另一侧站着一名富豪,您要与谁交谈?");
            Console.WriteLine("1.乞丐 2.富豪 3.不对话");
            string str = Console.ReadLine();
            //判断
            if (str =="1")
            {
                //乞丐
                if (new Random().Next(0,100)>70)
                {
                    c_hp -= 30;    //残废
                    speed -= 5;  //速度
                    //提示
                    Console.WriteLine("乞丐拿出一本绝世武功,可惜没领悟!血量减30!");
                }
                else
                {
                    //成长提升
                    g_hp  = 5;
                    g_atk  = 1;
                    g_speed  = 5;
                    //提示
                    Console.WriteLine("乞丐拿出本绝世武功,你练完后,感觉飘飘欲仙!各项数值得到增长!");

                }
            }else if (str == "2")
            {
                //富豪 
                if (new Random().Next(0,100)>70)
                {
                    //赚钱了
                    money  = 20;
                    //提示
                    Console.WriteLine("富豪看你面善,送你20两银子出去历练。");
                }
                else
                {
                    //血本无归
                    money -= 9;
                    //提示
                    Console.WriteLine("富豪心情不好,让手下打了你一顿,损失了9两银子。");
                }
                ShowInfo();
            }
            //离开新手村提示
            Console.WriteLine("你伴随着黄昏的到来,离去了新手村,向着太阳落幕的地方走去。。。");
            //当前属性
            ShowInfo();

        }
         //创建角色
        static void CreateCharacter()
        {
            Console.WriteLine("请输入你的角色名称:");
            //输入角色名称
            name = Console.ReadLine();
            //判断名称是否正确
            if (string.IsNullOrEmpty(name))   //判断名字是否为空类型
            {
                //给与默认名称
                name = "憨憨";
            }

                //血量  随机90到111之间
                hp = new Random().Next(90,111);  //随机在范围里产生一个数
                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, 111);
                //速度成长
                g_speed = new Random().Next(10,16);
                //给出提示
                Console.WriteLine("恭喜你,角色创建成功!您的角色名称为:{0},血量为:{1},攻击力为:{2},速度为:{3}。",name,hp,atk,speed);
                //187-232  <200  200-210  210>
                //基础数值总和
                int num = hp   speed   atk;
            if (num < 200)
            {
                Console.WriteLine("您的角色数值超低,脸太黑了!");
            }
            else if (num < 210)
            {
                Console.WriteLine("您的角色看起来平凡到底,做了一个正常人。");
            }
            else
            {
                Console.WriteLine("您的角色看起来充满了王八之气!将来定是夺取天下之人");
            }
                    //成长数值总和 19-30  19-23   24-27  28-30
                    num = g_atk   g_hp   g_speed;
                    if (num<=23)
                    {
                        Console.WriteLine("您的角色潜力看起来好像没什么潜力。。。");
                    }else if (num<=27)
                    {
                        Console.WriteLine("您的角色潜力看起来一般般。");
                    }
                    else
                    {
                        Console.WriteLine("您的角色看起来潜力无穷的样子!");
                    }
                //当前属性
                ShowInfo();
                
        }

        //查看信息
        static void ShowInfo()
        {
            Console.WriteLine("您当前的属性为hp:{0}/{1},atk:{2},speed:{3},money:{4}",c_hp,hp,atk,speed,money);
        }

        //郊区
        static void jiaoQu()
        {
            //提示
            Console.WriteLine("村口站着一名满口大金牙开着豪车的商人,是否对话?1.对话 2.抢劫 3.无视");
            string str = Console.ReadLine();
            if (str =="1")
            {
                //对话
                Console.WriteLine("商人嘴里咬着雪茄笑嘻嘻的说道:‘只要你给我20两银子,就能让你飘飘欲仙!’是否给与?1.给 2.不给");
                //输入
                string str2 = Console.ReadLine();
                if (str2=="1" && money >= 20)
                {
                    //扣钱
                    money -= 20;
                    //加属性
                    g_hp  = 10;
                    g_atk  = 2;
                    g_speed  = 8;
                    Console.WriteLine("经过商人的锻炼,你感觉自己全身充满了力量!");
              
                }
                else
                {
                    Console.WriteLine("商人看了你一眼,离开了这里");
                }

            }else if (str == "2")
            {
                //抢劫
                int num = hp   atk   speed;
                //如果大于210,天资聪慧,能抢劫成功
                if (num>210)
                {
                    money  = 30;
                    Console.WriteLine("商人吓得屁滚尿流,丢下30两银子跑了");
                 
                }else
                {
                    money -= 10;
                    Console.WriteLine("商人掏出了他的大炮,抢劫失败,拿出10两银子自保。。");
                    
                }

            }
            ShowInfo();
        }

        //野外
        static void yeWai()
        {
            Console.WriteLine("碰到一头野猪,是否攻击?1.攻击 2.释放技能‘大威天龙’ 3.逃跑");
            string str1 = Console.ReadLine();
            if (str1 == "1")
            {
                int num = hp   atk   speed;
                //如果大于200,天资聪慧,能打败野猪
                if (num>200)
                {
                    //升级后的属性加成
                    exp  = 1000;
                    level  = 1;
                    hp  = g_hp;
                    atk  = g_atk;
                    speed  = g_speed;
                Console.WriteLine("你战胜了野猪,获得经验 1000,等级升级为2。");
                }else
                {
                    c_hp -= 30;
                    Console.WriteLine("你没打过野猪,当前血量损失了30点。");
                }
            }else if (str1 =="2")
            {
                //升级后的属性加成
                money -= 2;
                exp  = 1000;
                level  = 1;
                hp  = g_hp;
                atk  = g_atk;
                speed  = g_speed;
                Console.WriteLine("你战胜了野猪,获得经验 1000,等级升级为2。");
            }
            else if (str1 == "3")
            {
                money -= 1;
                Console.WriteLine("你选择了逃跑,损失了1银两。");
               
            } 
            ShowInfo();
            //离开野区提示
            Console.WriteLine("随着你升到了二级,你觉得这个地方已经无法满足你的,于是你向更远的皇宫方向走去。");
        }

         static void huangGong()
        {
            Console.WriteLine("刚来到皇宫的大门口,你看到了一个气质超凡的靓女正在愁眉苦脸的等待着什么。你是否上去搭讪?1.搭讪 2.给她一两银子 3.不理她,继续赶路。");
            string str = Console.ReadLine();
            if (str == "1")
            {
                //搭讪
                Console.WriteLine("靓女对你微微一笑,并没有发生什么其他事情。");

            }else if (str == "2")
            {
                money -= 1;
                Console.WriteLine("靓女深情脉脉的看着你,她好像疯狂的爱上了你,她想要嫁给你,你是否同意?1.同意 2.不同意");
                string str1 = Console.ReadLine();
                if (str1 == "1")
                {
                Console.WriteLine("你同意了,从此和她过上了没羞没躁的日子");
                }
                else if(str1 == "2")
                {
                    Console.WriteLine("你果断拒绝了,声明自己乃是正人君子,绝无任何非分之想。");
                    hp -= 999;
                    Console.WriteLine("该女子十分生气,趁你不注意从怀里掏出一颗手榴弹与你同归于尽。你卒");
                }
                ShowInfo();
            }
           
        }
        static void Main(string[] args)
        {
            //创建角色
            CreateCharacter();
            xinShouCun();
            jiaoQu();
            yeWai();
            huangGong();

        }
    }
}

0 人点赞