传智的光辉岁月-C#基础篇三流程控制1

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace P01Review
{
    class Program
    {
        //全局变量如果没有初始化也没有复制,那么编译器会给它默认值:
        // 数值类型默认值:0
        // bool 默认值:false
        // string 默认值:null

        //1.2全局变量(类的成员变量)
        static int count;

        static void Main(string[] args)
        {
            Switch();//调用方法
            Console.ReadLine();
        }

        static void Switch()
        {
            //1.根据 用户 输入的狗的类型,显示不同狗的价格
            Console.WriteLine("请输入您喜欢的狗狗的类型:");
            string strDogType = Console.ReadLine();
            decimal price = 0m;

            //if (strDogType == "苏格兰牧羊犬")
            //{
            //    price = 3000m;
            //}
            //else if (strDogType == "德国牧羊犬")
            //{
            //    price = 5000m;
            //}
            //else if (strDogType == "萨摩耶")
            //{
            //    price = 4000m;
            //}
            //else
            //{
            //    price = 0m;
            //}

            //switch语法 主要用来 判断 一个变量的值!
            switch (strDogType)
            {
                //可以让 多个 case 条件 共享同一段代码~~~
                case "苏格兰牧羊犬":
                case "德国牧羊犬":
                    {
                        price = 3000m;
                        break;
                    }
                case "萨摩耶":
                    {
                        price = 4000m;
                        break;
                    }
                default://默认操作,相当于 if else 里的 else
                    {
                        price = 0m;
                        break;
                    }
            }
            //case 是一个独立的作用域,作用域中 创建的变量,在外部访问不到!
            //Console.WriteLine(a);//访问不到

            //int numCount =12;
            //switch (numCount)
            //{
            //    //错误:因为 case 后 是跟 一个 值! 用来 和 传入switch的numCount进行 判等比较;
            //    //     如此出 ,非要写一个 numCount>0 的表达式,那么 case 就会运行 表达式,并 把表达式 的 结果 拿来和 switch的变量 numCount  进行 判等比较
            //    //     【所以,简单的说,就是 switch case 不是用来 进行 范围比较的,而是用来 做 判等比较的!】
            //    //case numCount > 0:
            //        //break;
            //}

            //swich中 可以传递的参数类型有: string字符串 ,数值, char字符,bool
            #region swich中 可以传递的参数类型
            bool isFinished = true;
            switch (isFinished)
            {
                case true:
                    break;
                case false:
                    break;
            }

            int num = 110;
            switch (num)
            {
                case 1:
                    break;
                case 2:
                    break;
                default:
                    break;
            }

            char chr = ‘好‘;
            switch (chr)
            {
                case ‘好‘:
                    break;
                case ‘爱‘:
                    break;
                case ‘你‘:
                    break;
                case ‘信‘:
                    break;
            }
            #endregion

            Console.WriteLine("您选择的犬种为" + strDogType + ",价格:" + price);
        }

        #region 10.0 逻辑判断 if...else if...else
        /// <summary>
        /// 10.0 逻辑判断 if...else if...else
        /// </summary>
        static void IfElse()
        {
            Console.WriteLine("请输入您最喜欢老师的名字:");
            string strName = Console.ReadLine();
            /*如果满足 if条件,则只执行 if里的代码
            if (strName == "苍老师")//如果
            {
                Console.WriteLine("讨厌~~~");
            }
            else//否则:如果没有满足 if条件,则执行 else里的代码
            {
                Console.WriteLine("太讨厌了~~!你怎么能不像小林老师一样 最喜欢苍老师呢?");
            }*/

            //2.if..else if ..else 一种多个条件的判断逻辑,其中任意个判断成立的话,后面的判断都不需要 执行了!
            if (strName == "苍老师")
            {
                Console.WriteLine("禽兽~~~");
            }
            else if (strName == "波老师")
            {
                Console.WriteLine("禽兽中的禽兽~~~");
            }
            else if (strName == "龙泽老师")
            {
                Console.WriteLine("禽兽中的禽兽中的战斗机~~~");
            }
            else {
                Console.WriteLine("不认识~~~~~~~");
            }
        }
        #endregion

        #region  A.课堂练习 void ClassEx()
        /// <summary>
        /// A.课堂练习
        /// </summary>
        static void ClassEx()
        {
            //1.接收 学员的分数 和 名字
            Console.WriteLine("请输入您的名字:");
            string strName = Console.ReadLine();

            Console.WriteLine("请输入您的分数:");
            int intScore = Convert.ToInt32(Console.ReadLine());

            string strScore = "E";
            //if = 如果 , else = 否则 ,else if = 否则 如果

            if (intScore <= 60)
            {
                strScore = "E";
            }
            else if (intScore > 60 && intScore <=70)
            {
                strScore = "D";
            }
            else if (intScore > 70 && intScore <= 80)
            {
                strScore = "C";
            }
            else if (intScore > 80 && intScore <= 90)
            {
                strScore = "B";
            }
            else if (intScore > 90)
            {
                strScore = "A";
            }

            string strMsg = string.Format("恭喜您【{0}】,分数为:{1}", strName, strScore);
            Console.WriteLine(strMsg);

        }
        #endregion

        #region 9.0 数值之间的 运算 void NumOperator()
        /// <summary>
        /// 9.0 数值之间的 运算
        /// </summary>
        static void NumOperator()
        {
            //两个 不同类型的 数值 进行运算,会自动 把低位的数值 转成 与其进行运算 的 高位 数值类型
            int num = (int)(11 / 11.2);

            double num2 = 11 / 11.2;//运算时,11 会自动由int转成 double 然后再与 11.2进行运算,两个double运算的结果 还是 double

            // % 取模/求余
            int res = 12 % 5; //2
            int res1 = 23 % 2;//1

        }
        #endregion

        #region 8.0 字符串的连接 Format方法 -void StrContact()
        /// <summary>
        /// 8.0 字符串的连接 Format方法
        /// </summary>
        static void StrContact()
        {
            string strMsg0 = "Hi~~";
            string strName = "小白";
            string strShowLove = "I Love U~~~~";
            string strMsg3 = strMsg0 + strName + strShowLove;

            //Console.WriteLine(strMsg + strMsg2);
            Console.WriteLine(strMsg3);

            //1.0 拼接 字符串
            string strMsg4 = "哈哈哈~~~" + strName + ",哈哈哈哈~~~" + strShowLove + "有病~~!";
            //2.0 另一种拼接字符串的方式:string.Format方法
            string strMsg5 = string.Format("哈 {1} 哈哈~~~{0},哈哈哈哈~~~有病~!{0}", strName, strShowLove);
            Console.WriteLine(strMsg5);

            string strMsg6 = string.Format("{0} * {1} = {2}", 2, 50, 100);
            Console.WriteLine(strMsg6);

        }
        #endregion

        #region 7.0 数据转型(值类型的数据转型)
        /// <summary>
        /// 7.0 数据转型(值类型的数据转型)
        /// </summary>
        static void ConvertType()
        {
            //1.0 值类型:int/float/double/bool/decimal

            //2.将字符串转成 对应 值类型
            Console.WriteLine("请输入一个整型:");
            string strInt = Console.ReadLine();
            int numInt = int.Parse(strInt);
            int numInt2 = Convert.ToInt32(strInt);

            Console.WriteLine("请输入一个浮点型:");
            string strFloat = Console.ReadLine();

            float numFloat = float.Parse(strFloat);//11.1
            float numFloat2 = Convert.ToSingle(strInt);

            Console.WriteLine("请输入一个双精度浮点型:");
            string strDouble = Console.ReadLine();
            double numDouble = double.Parse(strDouble);//11.1
            double numDouble2 = Convert.ToDouble(strDouble);

            Console.WriteLine("请输入一个bool型:");
            string strBoole = Console.ReadLine();
            bool boolRes = bool.Parse(strBoole);
            bool boolRes2 = Convert.ToBoolean(strBoole);

            float ss = 11.1f;
            decimal de = 11.1m;
            double dd = 11.1;

        }
        #endregion

        #region 6.0 总结 Console的知识点 void ConsolePoint()
        /// <summary>
        /// 6.0 总结 Console的知识点
        /// </summary>
        static void ConsolePoint()
        {
            Console.Write("哈哈哈\n");//相当于 Console.WriteLine("哈哈哈");
        }
        #endregion

        #region 5.1 购买道具 void BuyAKnife()
        /// <summary>
        /// 5.1 购买道具
        /// </summary>
        static void BuyAKnife()
        {
            Console.WriteLine("欢迎光临【新疆刀具店】");
            Console.WriteLine("1-西瓜刀(50); 2-东洋刀(200); 3-杀猪刀(300)");
            //1.接收用户要购买的 刀具名称
            string strDaoName = Console.ReadLine();//接收用户的输入
            //2.接收用户要购买的 数量
            Console.Write("请输入您要购买的数量:");
            string strNum = Console.ReadLine();
            //2.1将接收到的 【数值字符串】 转成 整型 变量
            int num = int.Parse(strNum);
            //3.根据刀具的类型名称,结合 购买数量 计算总价
            int price = 0;//总价格
            if (strDaoName == "西瓜刀")
            {
                price = 50 * num;
            }
            if (strDaoName == "东洋刀")
            {
                price = 200 * num;
            }
            if (strDaoName == "杀猪刀")
            {
                price = 300 * num;
            }
            //4.如果购买的数量 超过了 10 把,那么总价 打8折;超过30把,总价 打6折;
            if (num > 10 && num <= 30)//当要判断多个条件满足时,可以使用 && 符号 来连接多个表达式, 10< x <=30
            {
                //50 * 0.8 -> 整数和浮点数进行运算的结果 还是浮点数 = 40.0
                price = (int)(price * 0.8);//所以,此处 需要 将 运算的double类型的结果 转成 int类型,然后 设置给 int类型的 price 变量
            }
            if (num > 30)
            {
                price = (int)(price * 0.6);
            }
            Console.WriteLine("您要购买" + num + "把【" + strDaoName + "】成功,总价格【" + price + "】~~");
        }
        #endregion

        #region 5.0 购买玩具 void GetUserInput()
        /// <summary>
        /// 5.0 购买玩具
        /// </summary>
        static void GetUserInput()
        {
            //1.买 玩具
            //1.1展示玩具
            string toyNames = "1.玩具狗(20元/个);2.玩具熊(80元/个);3.遥控飞机(200元/个);";
            Console.WriteLine("请选择您喜欢的玩具:" + toyNames);
            //1.2接收用户 想购买的 玩具名称
            //调用 Console.ReadLine() 方法,此方法 会【返回】用户在控制台输入的 字符串
            string strUsrToyName = Console.ReadLine();//接收用户输入的一行字符串,并存入 字符串变量 strUserChoose

            //a.询问用户购买数量
            Console.Write("请问您要购买的数量是:");
            //a1.接收用户输入的 数量-【数值 字符串】
            string strCount = Console.ReadLine();
            //a2.将 【数值 字符串】 转成 【数值】,并存入 整型 变量中
            int count = int.Parse(strCount);//int.Parse方法 专门用来  将 【数值字符串】 转成 【整型】

            //b.并根据 数量 和 不同玩具的价格 显示总价
            //b0.总价格
            int price = 0;
            //b1.如果 用户购买的 是 玩具狗,那么 就用玩具狗的价格 20 * 购买数量
            if (strUsrToyName == "玩具狗")//如果满足if的条件,就会执行 if大括号里的代码;如果不满足,就跳过if的大括号
            {
                price = 20 * count;//根据 购买数量 计算 总价格
            }
            //b2.如果 用户购买的 是 玩具熊,那么 就用 玩具熊 的价格 80 * 购买数量
            if (strUsrToyName == "玩具熊")
            {
                price = 80 * count;//根据 购买数量 计算 总价格
            }
            //b3.如果 用户购买的 是 遥控飞机,那么 就用 遥控飞机 的价格 200 * 购买数量
            if (strUsrToyName == "遥控飞机")
            {
                price = 200 * count;//根据 购买数量 计算 总价格
            }

            //1.3将玩具交给用户
            //Console.Write("恭喜您,成功购买了:");
            //Console.WriteLine(strUserChoose);
            //注意:字符串之间使用 + ,起到的连接作用:结果会生成一个新的字符串
            string strMsg = "恭喜您,成功购买了:" + count + "个【" + strUsrToyName + "】,总价:" + price;
            Console.Write(strMsg);

        }
        #endregion

        #region 4.0 命名规范 void NamedRules()
        /// <summary>
        /// 4.0 命名规范
        /// </summary>
        static void NamedRules()
        {
            ////1.关于变量 的初始化
            ////1.1 局部变量:定义在函数中的变量,一定要给值
            //int a = 1;
            ////a = 1;
            //Console.WriteLine(a);
            //Console.WriteLine(count);

            //-------------命名规范-如果不符合,编译器会报错!-----------------
            //1.Rule01:命名规范-首字母必须是 英文字母 或 下划线,可以使用 中文--但是,强烈不推荐使用!会被歧视!
            string name = "小白";
            //string 姓名 = "";

            //-------------命名规则:程序员之间共同遵守的约定,但是编译器不在乎!-----------------
            //2.Rule02:要有意义,通过变量名称就能看出 变量里存的是什么值
            //3.Rule03:当存在多个 单词的时候,首字母小写,其它单词的首字母大写!
            string xueXiaoMing = "";
            //4.Rule04:如果是【全局变量】,则一般以 _开头,如:int _age =1;
        }
        #endregion

        #region 3.0 一次性定义多个变量 void DeclareManyVar()
        /// <summary>
        /// 3.0 一次性定义多个变量
        /// </summary>
        static void DeclareManyVar()
        {
            string strName = "小林林";
            int age = 18;
            bool sex = false;//一般使用bool值来保存性别:男-true,女-false

            //一次性声明多个变量:类型必须一致! -不推荐使用
            string strName2 = "周林林", strName3 = "胡凌浩", strName4 = "江佳恒", strName5 = "伍湖", strName6 = "张扬波";
        }
        #endregion

        #region 2.0 局部变量和全局变量
        static void Hello()
        {
            //2.局部变量 只能在方法内部使用,并有效;出了方法,就访问不到了!
            int a = 11;
            //int a = 123; 变量名,不能与 【其它】 变量相同:当前方法里的【其它】,

            //3.当局部变量和全局变量 同名时,编译器允许通过,但是具体访问到的,优先访问 局部变量
            int count = 12;
            //如果 方法 和 类中 有同名的 变量,那么 方法里的代码 会使用 方法中的 变量(就近原则)
            Console.WriteLine(count);
        }

        #endregion
    }
}

  

时间: 2024-10-13 22:00:49

传智的光辉岁月-C#基础篇三流程控制1的相关文章

传智的光辉岁月-C#基础篇三流程控制2

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P01ReviewAndWhile { class Program { static void Main(string[] args) { //Reg(); MulLoop(); Console.ReadLine(); } #region 9.2 多重循环练习:注册 void Reg() //9.2 多重循

传智的光辉岁月-C#基础篇一编译原理

时间过的真快,不知不觉已经从传智出来,工作一个月了啊,想想当初自己的所有努力和付出都是值得的,当初来传智可以说是走头无路,唯有努力的向前冲,在这里满满的正能量,激烈着我一直努力,胜利就在前面,只要你能坚持坚持~~~对于我这样的一个新手而言,现在最重要的就是技术积累,一入IT深似海,我要学的东西还真的很多很多... 以前一直没时间,现在在工作之余,想把自己以前学的东西整理一套笔记,供.NET爱好者,和自己以后翻阅参考.... 好了直接上代码... using System; namespace H

python 学习之 基础篇三 流程控制

前言: 一. python中有严格的格式缩进,因为其在语法中摒弃了“{}”来包含代码块,使用严格的缩进来体现代码层次所以在编写代码的时候项目组要严格的统一器缩进语法,一个tab按键设置为四个空格来缩进,防止缩进不规范导致的启动失败. 二.在python中变量(标识符)命名和一般的高级语言没有什么不同都推荐使用,字母.下划线.数字命名,其中数字不能作为标识符的开头,python中变量名是区分大小写的(所以可以使用驼峰命名法去命名,也就是英文单词的字母首字母大写其余的小写).以下划线开头的标识符是有

传智的光辉岁月-C#基础篇十小练习

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P03练习 { class Program { static void Main(string[] args) { Test05(); } public static void Test01() { /*请编写1个方法,求一列数的规则如下: 1.1.2.3.5.8.13.21.34.55...... 求指定

传智的光辉岁月-C#基础篇七类和静态成员

1.new关键字做的4个事情 1.1 开辟堆空间 a.开辟多大的空间呢? 当前类 所有的 成员变量类型所占空间的总和 + 类型指针(方法表的地址) b.开辟了空间干什么用呢? 存放 成员变量 1.2 创建对象 a.将对应类型 中的 实例成员模板区 里的 实例变量 复制到 堆空间空间中: b.将 对应类型 的 方法表地址 设置 对象! 1.3 调用构造函数 a.将 前面创建 的对象 的堆地址,先传给 构造函数里的 this! b.再 执行 构造函数里的代码! 1.4 返回堆地址 2.静态成员 和

传智的光辉岁月-C#基础篇六飞行棋

飞行棋业务:我们要能够让2个玩家 在地图上 按照游戏规则 进行游戏 玩家类 变量:玩家位置,玩家名称,玩家标识,玩家是否在陷阱中 方法:投骰子,移动 地图类 变量:地图数据数组 方法:初始化地图数据,绘制地图,显示Logo 游戏规则类 变量: 方法:第一次游戏说明,判断玩家位置是否有障碍物,根据不同障碍物执行不同操作,判断游戏是否结束 using System; using System.Collections.Generic; using System.Linq; using System.T

传智的光辉岁月-C#基础篇八构造函数和面向对象思想

3.关于 对象创建的几个关键词 Dog d1 = new Dog(); Dog d1 叫做 声明变量 new Dog() 叫做 实例化(创建)对象 4.关于对象.方法和 this 的关系 Dog d1 = new Dog();//在new关键字 开辟堆空间,创建完对象,开始调用构造函数的时候,会把对象的地址 传给 构造函数里的 this d1.ShowLove();//在调用方法时,会先将 d1里保存的 对象地址 传给 方法里的 this,然后再执行方法体: 5.静态方法 只能 访问 静态成员,

传智的光辉岁月-C#基础篇九OOP属性结构枚举

1.设计一个Ticket类,有一个距离属性(本属性只读,在构造方法中赋值),不能为负数,有一个价格属性,价格属性只读,并且根据距离计算价格(1元/公里):-----------0-100公里 票价不打折101-200公里 总额打9.5折201-300公里 总额打9折300公里以上 总额打8折有一个方法,可以显示这张票的信息. 业务:不需要设计太多,只需要 提示用户 拥有的票的种类,然后让用户选择,选择后 按照价格打折后 显示给用户强调:只需要两个类(Ticket 票据类,Saler 售票员类)

传智的光辉岁月-C#基础篇五值类型和引用类型

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace P01Method { class Program { static void Main(string[] args) { //int a1 = 11; //int b2 = 22; //Add2Num(a1, b2);//在调用方法时,为 方法括号中 传递的 值 就叫做 实参(实际参数) //Add2Nu