第二章条件结构和运算符本章学习目标掌握C#中运算符的使用掌握if判断语句掌握switch语句熟练进行程序调试运算符在计算器中我们怎样实现数学意义上的运算?看来我们一样需要各种运算符运算符孙悟空会72变,猪八戒会36变,沙和尚会36变,判断孙悟空的变化是否最多,计算他们三人平均每人会多少变。分析这个例子里面既要用到数学计算(加法、除法),又有逻辑判断,在程序里用什么来完成这样的操作。提问运算符示例intsunWuKong=72,zhuBaJie=36,shaHeShang=36;//判断孙悟空的变化是否最多if(sunWuKongzhuBaJie&&sunWuKongshaHeShang){Console.WriteLine(“孙悟空的变化最多,有{0}变”,sunWuKong);}else{Console.WriteLine(孙悟空的变化不是最多,只有{0}变,sunWuKong);}//计算三人的平均变化数量intsum=(sunWuKong+zhuBaJie+shaHeShang)/3;Console.WriteLine(平均每人会{0}变,sum);赋值运算符比较运算符逻辑运算符算术运算符算术运算符算术运算符列表算术运算符/*+-++%例inti=10/5;//i=2inti=10*5;//i=50inti=20+30;//i=50inti=30-20;//i=10inti=1;i++;//i=2inti=10%3;//i=1inti=1;i--;//i=0说明除法运算符,求商乘法运算符,求积加法运算符,求和减法运算符,求差相当于+1取模运算符,求余数相当于-1--赋值运算符赋值运算符:=。赋值运算符右边是表达式,左边是一个变量。赋值运算符的含义是把右边表达式的结果保存在(赋值给)左边的变量里。示例intsunWuKong=72,zhuBaJie=36,shaHeShang=36;intsum=(sunWuKong+zhuBaJie+shaHeShang)/3;比较运算符比较运算符列表比较运算符==!===例30=50//结果是true3020//结果是false3020//结果是true30=50//结果是false30!=50//结果是true30==50//结果是false说明小于等于小于大于大于等于不等于等于逻辑运算符逻辑运算符列表逻辑运算符说明例!(2010)//结果是false逻辑非:!符号右边的表达式为true,结果为false,表达式为false,结果为true。!2010&&2030//结果是false逻辑与:&&符号左边的表达式和右边的表达式都为true,结果才为true,否则为false。&&2010||2030//结果是true逻辑或:||符号左边的表达式和右边的表达式都为false,结果才为false,否则为true。||if结构运行程序当中我们经常会遇到这种情况根据用户的选择获得不同的结果,使用的就是条件结构。if结构第一步,询问是否救师傅,第二步,接受输入的选择,第三步,判断选择的内容是否y,根据判断结果来决定救师傅,第四步,干掉牛魔王。提问在《大话西游》里孙悟空遇到一个很棘手的问题:唐僧师徒被芭蕉扇扇到了天上,孙悟空要去干掉牛魔王,孙悟空在犹豫:是先救了师傅再去打牛魔王,还是直接去打牛魔王呢?大家用条件结构来帮帮他分析if结构示例stringchoose;//大家给孙悟空的选择Console.WriteLine(西游途中,孙悟空遇到前所未有的危机,救不救师傅(Y/N):);choose=Console.ReadLine();//接受选择的答案if(choose==Y||choose==y){Console.WriteLine(师傅,挺住,我来了);}Console.WriteLine(牛魔王,来单挑!);如果choose等于”y”或”Y”,救师傅if结构语法if(条件表达式){代码块A;}简单if语句如果if的条件表达式结果为true,程序执行代码块A;如果if的条件表达式结果为false,程序不执行代码块A,if语句结束,程序继续执行if语句后的代码。if结构第一步,提示两个选择,A代表救师傅,B代表救紫霞仙子第二步,接受输入的选择(字符串A或B),第三步,判断选择的内容是A还是B,根据判断输出结果。提问当用户有2种选择的时候,上面的条件语句就力不从心了,修改上面示例:唐僧师徒和紫霞仙子被芭蕉扇扇到了天上,这时候孙悟空有二个选择:A,先救师傅;B,先救紫霞仙子。到底孙悟空应该选择那一个答案呢?分析if结构示例Console.WriteLine(西游途中,孙悟空遇到前所未有的危机,\n亲情,爱情该如何选择,大家伸出援助之手,帮帮他吧!);Console.WriteLine(“请输入你的选择(先救师傅,先救紫霞仙子):);choose=Console.ReadLine();if(choose==“A”){Console.WriteLine(师傅,挺住,我来了);}Else{Console.WriteLine(紫霞,我来了,安了);}如果choose等于”先救师傅”,救师傅否则(choose不等于”先救师傅”),救紫霞if结构语法if(条件表达式){代码块A;}else{代码块B;}完整if结构如果if的条件表达式结果为true,程序执行代码块A,不执行代码块B;如果if的条件表达式结果为false,程序执行代码块B,不执行代码块A.多重if结构第一步,提示三个选择,A代表救师傅,B代表救紫霞仙子,C代表打倒牛魔王,第二步,接受输入的选择(字符串A、B或C),第三步,判断选择的内容是A、B还是C,根据判断输出结果。提问上述示例如果孙悟空有三个选择:A,先救师傅;B,先救紫霞仙子;C,打倒牛魔王。选择一个答案,然后判断结果该怎么完成?分析多重if结构示例……if(choose==A){Console.WriteLine(师傅,挺住,我来了);}elseif(choose==B){Console.WriteLine(紫霞,我来了,安了);}elseif(choose==C){Console.WriteLine(老子不发威,你当我是病猴,牛魔王,看棍!);}else{Console.WriteLine(输入错误!);}如果choose等于”A”,救师傅否则,如果choose等于”B”,救紫霞否则,如果choose等于”C”,打倒牛魔王否则,如果choose不等于”A”、”B”和”C”,提示输入错误多重if结构语法if(条件表达式A){代码块A;}elseif(条件表达式B){代码块B;}…...else{代码块C;}如果条件表达式A为true,执行代码块A如果条件表达式A为false,条件表达式B为true,执行代码块B如果所有的条件表达式都为false,执行else里的代码块C多重if结构嵌套if语句第一步,提示用户输入信息,第二步,接受用户输入的年龄和性别,第三步,判断用户年龄是否符合条件,第四步,年龄判断通过后,嵌套判断性别参加比赛组。提问电视台举行超人选拔赛,网上报名,要求:年龄大于等于18,小于25岁的适龄年青人,性别为男的参加超男组比赛,性别为女的参加超女组比赛。用程序如何实现?分析嵌套if语句示例……if(age=18&&age25){if(sex==男){Console.WriteLine(你报名参加的是超男组比赛!);}else{Console.WriteLine(你报名参加的是超女组比赛!);}}else{Console.WriteLine(你的年龄不在报名年龄范围之内!);}判断年龄age是否大于()等于(=)18并且(&&)小于()25岁年龄符合后,再次(嵌套)判断性别是否等于(==)男嵌套if语句注意事项:为了规范代码,每个if和else语句都应该用大括号括起来。条件表达式的结果只能是bool类型的值(true,false)。嵌套条件语句里,只有满足外层if条件,才能进入内层if条件判断。嵌套条件语句里,如果没有明确的大括号,else与离它最近的没有else相匹配的if相匹配。switch结构提问除了多重if,C#还提供了另一种多重条件结构switch。上述多重条件结构例题(孙悟空的选择),如果用switch结构怎么实现?switch结构示例……switch(choose){caseA:Console.WriteLine(师傅,挺住,我来了);break;caseB:Console.WriteLine(紫霞,我来了,安了);break;case“C:Console.WriteLine(老子不发威,你当我是病猴,牛魔王,看棍);break;default:Console.WriteLine(输入错误!);break;}如果choose等于”A”,救师傅否则,如果choose等于”B”,救紫霞否则,如果choose等于”C”,打倒牛魔王否则,如果choose不等于”A”、”B”和”C”,提示输入错误switch结构语法switch(表达式){case值A:代码块A;break;case值B:代码块B;break;default:代码块C;break;}如果表达式的结果等于值A,执行代码块A如果表达式的结果等于值B,执行代码块B如果表达式的结果和所有的值都不相等,执行default里的代码块C表达式的值必须是int、char或string类型的break关键字用来结束这个switch()语句,每一个case块和default里只要有语句,就必须有break关键字常见错误switch(sum){case12:sum+=31;case11:sum+=30;case1:sum+=31;break;default:break;}√switch(sum){case12:sum+=31;break;case11:sum+=30;break;case1:sum+=31;break;default:break;}条件运算符第一步,提示用户输入年龄,第二步,接受用户输入的年龄,第三步,通过条件运算符判断年龄并得到票价,输出结果提问有一些比较简单的条件判断,比如电影院规定:年龄在18岁以下的票价10元,18岁以上的票价20元。现根据观众的年龄得到票价。这种非常简单的条件判断我们有一种比if条件结构更简单的方式解决。分析条件运算符示例Console.WriteLine(请输入你的年龄:);intage=int.Parse(Console.ReadLine());intprice=age18?20:10;Console.WriteLine(你要购买的票价是{0},price);条件运算符:如果age18结果为true,变量price的值就是20;否则,是10。条件运算符语法变量=(条件表达式)?值A:值B;条件运算符如果条件表达式结果为true,变量得到值A;如果条件表达式结果为false,变量得到值B.课堂练习用switch语句判断输入的月份和日期(例如,“0609”代表6月9号)是属于哪个星座。获取用户输入的4位数字,根据这个数字所处的范围判断。水瓶:0121-0219狮子:0723-0823双鱼:0220-0320处女:0824-0923白羊:0321-0420天秤:0924-1023金牛:0421-0521天蝎:1024-1123双子:0522-0621射手:1123-1221巨蟹:0622-0722摩羯:1223-0120用VS工具进行程序调试第一步,设置断点;第二步,监视变量值;第三步,逐语句跟踪。演示使用VS2005进行程序调试总结=,==是什么运算符?说出变量i的值是什么?booli=!(20*5=100);booli=(2000%4==0&&2000%100!=0)||2000%400==0;条件表达式的结果是什么类型的值?下面代码的sum的结果是intsum