C#算数运算符、关系运算符、逻辑运算符、语句
C#算数运算符、关系运算符、逻辑运算符、语句
一、运算符:
(一)、算术运算符:+ - * /%
% ——取余运算取余运算的应用场景:
1.奇偶数的区分。
2.把数变化到某个范围之内。——彩票生成。
3.判断能否整除。——闰年、平年。
int a = 10, b = 3; Console.WriteLine("10/3=" + (a / b)); Console.WriteLine("10%3=" + (a % b));
++(自增运算) --(自减运算)——它只能对变量进行运算。
int a = 5; a++; Console.WriteLine(a);//a = 6;
1.前自增/前自减
先进行自增/自减运算,然后再进行其它运算。可以简单认为前自增/前自减的优先级是最高。
int a = 5,b; b = ++a; Console.WriteLine("a=" + a + ";b=" + b); //结果:a=6,b=6
2.后自增/后自减
先进行其它运算,当其它运算都完成后,再进行自增/自减运算。可以简单认为是后自增/后自减优先级是最低的。
int a = 5,b; b = a++; Console.WriteLine("a=" + a + ";b=" + b);//结果:a=6,b=5
(二)、关系运算符:——用来判断式子成立与否
== | != | > | >= | < | <= |
注意:
双等号不要写成单等号
(三)、逻辑运算符:
&& 与,||或,!非
&&和||是双操作数,!是单操作数
int a = 5,b=6; Console.WriteLine(a > b && a > 0); //false; Console.WriteLine(a <b && a > 0);//true
int a = 5,b=6; Console.WriteLine((a > b) || (a > 0)); //true Console.WriteLine((a > b) || (a < 0));//false
! 非 ——取反
优先级:
一般来说:
1.算术运算术的优先级要高关系运算符;关系运算符的优先级要高于逻辑运算符
2.逻辑非优先级最高。逻辑与要高于逻辑或。
3.如果不确定,就加小括号。
(四)、其它运算符:
1.赋值运算符:=。把右边的结果送到左边去。左边只能是变量。
2.复合运算符:+= -= *= /= %= 知道就行。a+=5; <==> a = a + 5
3.条件运算符:三目运算符?:。
int a=5,b=6,c;
c = a > b ? a : b;
Console.WriteLine( c )//6
作业:
1.游泳池 一游泳场地,呈圆形,泳池半径a,广场半径b(a<b),
①求泳池护栏长度②求广场砖面积③护栏造价25元/米,广场砖85元/m^2,求护栏、广场砖共花费多 少?
Console.Write("请输入泳池半径a:"); string a = Console.ReadLine(); Console.Write("请输入广场半径b:"); string b = Console.ReadLine(); const double PI = 3.1415926; double L = 2 * PI * Convert.ToDouble(a); double S1 = PI * Convert.ToDouble(b)* Convert.ToDouble(b)- PI * Convert.ToDouble(a) * Convert.ToDouble(a); double RMB = 25 * L + 85 * S1; Console.WriteLine("泳池护栏长度L:"+L+"m"); Console.WriteLine("广场砖面积S1:" + S1 + "m^2"); Console.WriteLine("护栏、广场砖共花费YMB:"+RMB+"元");
2.老狼老狼几点了
Console.Write("老狼老狼几点了?"); string hour = Console.ReadLine(); int h, h1; string ap; h = Convert.ToInt32(hour); h1 = h > 12 ? h - 12 : h; ap = h > 12 ? "下午" : "上午"; Console.WriteLine("现在是" + ap + h1 + "点!");
3.输入三个数a,b,c。输出最大的。
int a, b, c, d, max; Console.WriteLine("请输入三个数"); string a1 = Console.ReadLine(); string b1 = Console.ReadLine(); string c1 = Console.ReadLine(); a = Convert.ToInt32(a1); b = Convert.ToInt32(b1); c = Convert.ToInt32(c1); d = a > b ? a : b; max = d > c ? d : c; Console.WriteLine("最大值是" + max);
二、语句:顺序,分支,循环,跳转,异常。
(一)顺序语句:略
(二)分支语句:
判断--表达式。if(){}
四大类:
1.if
if (age > 18)
{
Console.WriteLine("可以去当兵!");
}
注意:if表达式后面只管一句话,可以省略掉{};如果if表达式后面需要管多句话,则必须加{}
2.if...else...
if (age > 18) { Console.WriteLine("成年了!"); Console.WriteLine("可以去当兵!"); } else { Console.WriteLine("还没长大!"); Console.WriteLine("回家上学去!"); }
注意:
1.else后面不要加分号。
2.else后面不要加小括号。
3.if...else if...else if...else 多分支。
//输入 Console.Write("老狼老狼几点了?"); string s = Console.ReadLine(); int hour = Convert.ToInt32(s); if (hour >= 0 && hour < 6) // 0<hour<6:错误 { Console.WriteLine("凌晨" + hour + "点了"); } else if (hour >= 6 && hour <= 12) { Console.WriteLine("上午" + hour + "点了"); } else if (hour > 12 && hour < 18) { hour -= 12; Console.WriteLine("下午" + hour + "点了"); } else if (hour >= 18 && hour < 24) { hour -= 12; Console.WriteLine("晚上" + hour + "点了"); } else { Console.WriteLine("不可识别的时间!"); }
4.if嵌套。
if(...) { if(...) { } else { } } else { if(...) { } else { } }
分层、分类来解决问题的思路。
作业:
1.老狼几点了。凌晨,上午,下午,晚上。
Console.Write("请输入时间:"); string s = Console.ReadLine(); int h = Convert.ToInt32(s); if (h >= 0 && h < 6) { Console.WriteLine("时间是凌晨" + h + "点"); } else if (h >= 6 && h <= 12) { Console.WriteLine("时间是上午" + h + "点"); } else if (h > 12 && h <= 18) { h -= 12; Console.WriteLine("时间是下午" + h + "点"); } else if (h > 18 && h <= 24) { h -= 12; Console.WriteLine("时间是晚上" + h + "点"); } else { Console.WriteLine("输入时间错误"); }
2.判断一元二次方向根的情况。
Console.WriteLine("请输入方程系数a、b、c"); string s = Console.ReadLine(); string s1 = Console.ReadLine(); string s2 = Console.ReadLine(); int a, b, c; double d; a = Convert.ToInt32(s); b = Convert.ToInt32(s1); c = Convert.ToInt32(s2); d = b * b - 4 * a * c; if (a == 0) { Console.WriteLine("不是一元二次方程"); } else if (d > 0) { Console.WriteLine("有两个实根"); } else if (d < 0) { Console.WriteLine("没有实根"); } else { Console.WriteLine("有一个实根"); }
3.输入一个年份,判断是闰年还是平年。
Console.Write("请输入年份:"); string s = Console.ReadLine(); int year = Convert.ToInt32(s); if (year > 0 && year < 9999) { if (year % 400 == 0) { Console.WriteLine(year + "年是闰年"); } else if (year % 4 == 00 && year % 100 != 0) { Console.WriteLine(year + "年是闰年"); } else { Console.WriteLine(year + "年是平年"); } } else { Console.WriteLine("输入年份有问题,请核对"); }
4.称体重。
男人的标准体重是:体重(kg)=身高(cm)-100。
女人的标准体重是:体重(kg)=身高(cm)-110。
上下浮动3公斤属正常
要求输入性别、身高和体重,输出正常,偏胖,偏瘦
Console.Write("请输入性别:"); string sex = Console.ReadLine(); Console.Write("请输入身高:"); string h = Console.ReadLine(); Console.Write("请输入体重"); string w = Console.ReadLine(); int h1, w1, b, n; h1 = Convert.ToInt32(h); w1 = Convert.ToInt32(w); if (sex == "男") { n = h1 - 100; b = w1 - n; if (b >= -3 && b <= 3) { Console.WriteLine("体重正常"); } else if (b < -3) { Console.WriteLine("略瘦"); } else { Console.WriteLine("略胖"); } } else if (sex == "女") { n = h1 - 110; b = w1 - n; if (b >= -3 && b <= 3) { Console.WriteLine("体重正常"); } else if (b < -3) { Console.WriteLine("体重偏瘦"); } else { Console.WriteLine("偏胖"); } } else { Console.WriteLine("性别输入错误"); }
//称体重(方法2)
Console.Write("请输入性别:"); string sex = Console.ReadLine(); Console.Write("请输入身高:"); string h = Console.ReadLine(); Console.Write("请输入体重"); string w = Console.ReadLine(); int h1, w1, b, n=0; h1 = Convert.ToInt32(h); w1 = Convert.ToInt32(w); if (sex == "男" || sex == "女") { if (sex == "男") { n = h1 - 100; } else if (sex == "女") { n = h1 - 110; } b = w1 - n; if (b >= -3 && b <= 3) { Console.WriteLine("体重正常"); } else if (b < -3) { Console.WriteLine("略瘦"); } else { Console.WriteLine("略胖"); } } else { Console.WriteLine("性别输入错误"); }
5.输入年、月、日,判断是否是个正确的日期。
Console.Write("请分别输入年月日"); string year1 = Console.ReadLine(); string month1 = Console.ReadLine(); string day1 = Console.ReadLine(); int year = Convert.ToInt32(year1); int month = Convert.ToInt32(month1); int day = Convert.ToInt32(day1); if (year > 0 && year < 9999) { if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12) { if (day > 0 && day <= 31) { Console.WriteLine("日期正确"); } else { Console.WriteLine("日期错误"); } } else if (month == 4 || month == 6 || month == 11 || month == 9) { if (day > 0 && day <= 30) { Console.WriteLine("日期正确"); } else { Console.WriteLine("日期错误"); } } else if (month == 2) { if (year % 400 == 0 || year % 4 == 00 && year % 100 != 0) { if (day > 0 && day <= 29) { Console.WriteLine("日期正确"); } else { Console.WriteLine("日期错误"); } } else { if (day > 0 && day <= 28) { Console.WriteLine("日期正确"); } else { Console.WriteLine("日期错误"); } } } else { Console.WriteLine("日期错误"); } } else { Console.WriteLine("日期错误"); }