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 } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?