C#基础篇三流程控制1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
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
    }
}

  

posted @   枫伶忆  阅读(440)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示