3.07课·········if分支语句
语句分类:顺序语句,选择语句(分支语句),循环语句
分支语句:
(一)
if(表达式) //表达式返回值是True或False
{
}
说明:
1.表达式返回的是bool值;
2.小括号和花括号后面不需要加分号。
无论后面多少if,都需要去看看满不满足
(二)
if(){}else{} 二选一
若if成立,则不去走else
若if不成立,则一定会走else
int a = 10; if (a > 3) { a--; } else { a++; } Console.WriteLine(a);//a=9
(三)
if(){}else if(){} else if(){}else{}
多选一,各种情况只能走其中之一,若上面的都没走,将执行else里面的。
若if成立,那其他的所有都不去看
若if不成立,去查看下一个else if成立不成立,若成立,剩下的全都不用看
只要上面走了一个,下面的都不用去看了
int a = 10; if (a > 9) { a++; } else if (a < 11) { a++; } else { a++; } Console.WriteLine(a);//a=11
(四)
if的嵌套//在大的环境下还有什么小的满足条件
if() { if() { } else { } } int a = 10; if (a < 100) { if (a > 3 && a < 20) { a++; } else { a--; } } else { a += 10; } Console.WriteLine(a);//a=11
//练习
//输入一个小于等于100的整数,判断:
//是小于10的
//两位数
//是100
Console.Write("请输入一个小于等于100的整数:");
int a = int.Parse(Console.ReadLine());
if (a <= 100)
{
if (a < 10)
{
Console.WriteLine("您输入的是一个小于10的数!");
}
else if (a >= 10 && a < 100)
{
Console.WriteLine("您输入的是一个两位数的数!");
}
else//100
{
Console.WriteLine("您输入的数是100!");
}
}
else
{
Console.WriteLine("您的输入有误!");
}
Console.ReadLine();
//输入三个整数,xyz,最终以从小到大的方式输出。
//利用嵌套。
Console.Write("x=");
int x = int.Parse(Console.ReadLine());
Console.Write("y=");
int y = int.Parse(Console.ReadLine());
Console.Write("z=");
int z = int.Parse(Console.ReadLine());
if (x < y && x < z)
{
Console.WriteLine(x);
if (y < z)
{
Console.WriteLine(y);
Console.WriteLine(z);
}
else//z<y
{
Console.WriteLine(z);
Console.WriteLine(y);
}
}
else if (y < x && y < z)
{
Console.WriteLine(y);
if (x < z)
{
Console.WriteLine(x);
Console.WriteLine(z);
}
else
{
Console.WriteLine(z);
Console.WriteLine(x);
}
}
else//z是最小的
{
Console.WriteLine(z);
if (x < y)
{
Console.WriteLine(x);
Console.WriteLine(y);
}
else
{
Console.WriteLine(y);
Console.WriteLine(x);
}
}
Console.ReadLine();
两个数,将a的值给b,将b的值给a
中间变量
int a = 2;
int b = 5;
int zhong = a;
a = b;
b = zhong;
//输入三个整数,xyz,最终以从小到大的方式输出。
//Console.WriteLine(x);
//Console.WriteLine(y);
//Console.WriteLine(z);
//利用中间变量//x处于最小的位置,其次是y,z最大
方法1 : Console.Write("x=");
int x = int.Parse(Console.ReadLine());//获取输入的数并转换为整数
Console.Write("y=");
int y = int.Parse(Console.ReadLine());
Console.Write("z=");
int z = int.Parse(Console.ReadLine());
int zhong;//取一个中间变量,没有赋值
if (x < y && x < z)//x最小,比较y与z
{
if (y < z)//x<y<z,与要求相符,不必运算
{
}
else//y>z,需将y、z数值调换,可用中间变量
{
zhong = y;
y = z;
z = zhong;
}
}
else if (y < x && y < z)//y最小,需将y、x数值调换
{
zhong = x;
x = y;
y = zhong;//此时x最小,与前文相同情况,可直接复制代码
if (y < z)
{
}
else
{
zhong = y;
y = z;
z = zhong;
}
}
else//z最小,需将z、x调换
{
zhong = x;
x = z;
z = zhong;//此时x最小,与前文相同情况,可直接复制代码
if (y < z)
{
}
else
{
zhong = y;
y = z;
z = zhong;
}
}
Console.WriteLine(x);
Console.WriteLine(y);
Console.WriteLine(z);//其结果x、y、z按大小依次排列
Console.ReadLine();
方法2:更简便 Console.Write("请输入x="); int x = int.Parse(Console.ReadLine ()); Console.Write("请输入y="); int y = int.Parse(Console.ReadLine()); Console.Write("请输入z="); int z = int.Parse(Console.ReadLine()); int zhong; if(x>y) { zhong = x; x = y; y = zhong;//x,y交换数值 } if(x>z) { zhong = x; x = z; z = zhong;//x最小 } if (y>z) { zhong = y; y = z; z = zhong;//z最大,y次之 } Console.WriteLine(x+"<"+y+"<"+z); Console.ReadLine();
输入整数a和b,若a^2+b^2大于100,则输出a^2+b^2的结果,否则输出两数之和
Console.Write("请输入整数a="); int a = int.Parse(Console.ReadLine()); Console.Write("请输入整数b="); int b = int.Parse(Console.ReadLine()); double s =( a * a + b * b);if(s>100) { Console.Write(s); } else { Console.Write(a + b); } Console.ReadLine();
//相亲过程
//女:你有房子么?
//若有→结婚吧;没有→你有钱么?
//若有→先买房子再结婚;
//没有→你有能力么?
//有→先赚钱再买房子再结婚
//没有→拜拜
Console.WriteLine("你有房子吗?");
string m = Console.ReadLine();
if (m == "有")
{
Console.WriteLine("结婚吧");
}
else if (m == "没有")
{
Console.WriteLine("你有钱吗");
m = Console.ReadLine();
if (m == "有")
{
Console.WriteLine("先买房再结婚");
}
else if (m == "没有")
{
Console.WriteLine("你有能力吗");
m = Console.ReadLine();
if (m == "有")
{
Console.WriteLine("先赚钱再买房子再结婚");
}
else if (m == "没有")
{
Console.WriteLine("拜拜");
}
}
}
//输入学生姓名,输入考试成绩// double
//若是100,【恭喜你***,满分通过!】
//若是大于等于80小于100,【**,你很优秀,继续保持!】
//若是大于等于60小于80,【**成绩良好】
//大于等于50小于60,【**就差一点点,下次一定要至少及格!】
//小于50,【**你是笨蛋么?】
Console.Write("请输入姓名");
string name = Console.ReadLine();
Console.Write("请输入成绩");
double chengji = double.Parse(Console.ReadLine());
if (chengji >= 0 && chengji <= 100)//成绩必须在0~100之间
{
if (chengji == 100)//100分的时候
{
Console.WriteLine("恭喜你" + name + ",满分通过!");
}
else if (chengji >= 80)//80~100之间
{
Console.WriteLine(name + "你很优秀,继续保持!");
}
else if (chengji >= 60)//60~80之间
{
Console.WriteLine(name + ",成绩良好!");
}
else if (chengji >= 50)//50~60之间
{
Console.WriteLine(name + "就差一点就能及格,下次加油!");
}
else//50分以下
{
Console.WriteLine(name + "!!你是笨蛋么?");
}
}
else//输入有误
{
Console.WriteLine("输入有误!");
}
//有一组函数:y = x (x<1);
//y = 2x -1 (1<=x<10);
//y = 3x-11 (x>=10)。
//括号内是x的满足条件。
//实现功能,随意输入一个x值,输出y的值。
Console.Write("x="); double x = double.Parse(Console.ReadLine()); if (x < 1) { Console.Write("y=" + x); } else if (x < 10) { Console.Write("y=" + (2 * x - 1)); } else { Console.Write("y=" + (3 * x - 11)); }
//ax*x+bx+c=0判断是否是一元二次方程,及其根的情况。公式: ∆=b*b-4*a*c.
//若∆<0,则方程无解,∆=0,则方程有两个相等的实根,∆>0方程有两个不相等的实根。
//求解则用到另一个公式:x=(-b±√b*b-4ac)/(2*a)
//√需要用到函数Math.Sqrt()
Console.WriteLine("求方程式ax*x+bx+c=0");
Console.Write("请输入a=");
double a = double.Parse(Console.ReadLine());
if (a == 0)
{
Console.WriteLine("此方程不是一元二次方程");
}
else//a!=0
{
Console.Write("请输入b=");
double b = double.Parse(Console.ReadLine());
Console.Write("请输入c=");
double c = double.Parse(Console.ReadLine());
double de = b * b - 4 * a * c;
if (de >= 0)
{
double x1 = (-b + Math.Sqrt(de)) / (2 * a);
double x2 = (-b - Math.Sqrt(de)) / (2 * a);
if (de > 0)
{
Console.WriteLine("此方程方程有两个不同的实根");
Console.WriteLine("x1=" + x1 + ",x2=" + x2);
}
else//de=0
{
Console.WriteLine("此方程方程有两个相同的实根");
Console.WriteLine("x1=x2=" + x1);
}
}
else//de<0
{
Console.WriteLine("此方程没有实数根");
}
}
Console.ReadLine();
“现在几点了?”键盘键入小时数,判断是上午还是下午。打印出来现在是上午几点还是下午几点。利用条件运算符。
Console.Write("现在几点了?"); int t = int.Parse(Console.ReadLine()); if (t < 0 || t > 24) { Console.WriteLine("输入有误!"); } else { string a = (t <= 12) ? "现在是上午" + t + "点." : "现在是下午" + (t - 12) + "点."; Console.WriteLine(a); } Console.ReadLine();