今天学习了,C#语句部分的分支语句,差点转不过弯来。
语句分类:
1.顺序语句
2.选择语句(分支语句)
3.循环语句
分支语句
(一)if(){}
int a = ; 按照顺序哪个if条件适合,执行哪个。
不合适就跳过执行下一个条件。
if (a < )
{
a++;
}
if(a>)
{
a--;
}
Console.WriteLine(a);-----运算结果是10
(二)if(){}else{}
//若if成立,则不去走else--------二选一
//若if不成立,则一定会走else
int a = ;
if (a > )
{
a--;
}
else
{
a++;
}
Console.WriteLine(a);--------结果10
(三)if(){}else if(){} else if(){}else{}
//若if成立,那其他的所有都不去看------多选一
//若if不成立,去查看下一个else if成立不成立,若成立,剩下的全都不用看
int a = ;
if (a > )
{
a++;
}
else if (a<=10&&a>0)------可以多个
{
a++;
}
else
{
a++;
} Console.WriteLine(a);------结果6
(四)if的嵌套
int a = ;
if (a < )
{
if (a > && a < )
{
a++;
}
else
{
a--;
}
}
else
{
a += ;
}
Console.WriteLine(a);------结果11
案例:
输入一个小于等于100的整数,判断:是小于10的,还是两位数,还是100。
//分析输入的数是小于等于100的,还是其他。若是小于等于100的,再细分那三种情况。所以要用到嵌套。
Console.Write("请您输入一个小于等于100的整数:");
int a = int.Parse(Console.ReadLine());
//先写出大的轮廓,再细分。排版要整齐。若是在没有错误情况下,排版不齐,可以删掉最下面的大括号,重新打上,可以自动排版。
if(a<=)
{
if(a<)
{
Console.Write("您输入的是一个小于10的数。"); }
else if(a>=&&a<)
{
Console.Write("您输入的是一个大于等于10且小于100的数。"); }
else
{
Console.Write("您输入的是100。"); } }
else
{
Console.Write("您的输入有误。"); }
案例:输入三个整数,xyz,最终以从小到大的方式输出。利用嵌套。
//分析情况大体3种,x最小,y最小,z最小。每一种情况都确定最小值后,只要比较后两个就可以了。
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)//x最小
{
Console.WriteLine(x);
if(y>z)
{
Console.WriteLine(y);
Console.WriteLine(z); }
else
{
Console.WriteLine(z);
Console.WriteLine(y);
} }
else if (y < x && y < z)//y最小
{
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); }
//两个数,将a的值给b,将b的值给a
//使用中间变量
int a = ;
int b = ;
int zhong = a;
a = b;
b = zhong;
//案例:输入三个整数,xyz,最终以从小到大的方式输出。
//结果必须按以下方式输出:
//Console.WriteLine(x);
//Console.WriteLine(y);
//Console.WriteLine(z);
//利用中间变量
Console.WriteLine("请您输入x=");
int x = int.Parse(Console.ReadLine());
Console.WriteLine("请您输入y=");
int y = int.Parse(Console.ReadLine());
Console.WriteLine("请您输入z=");
int z = int.Parse(Console.ReadLine()); int zhong; if (x < y && x < z)//x最小
{
if(y<z)//正常输出,不用改
{
}
else//z<y,y和z的值进行对调
{
zhong = y;
y = z;
z = zhong; }
}
else if (y < x && y < z)//y最小,那么x与y的值要先对调,对调以后x又变最小,再y与z比
{
zhong=x;
x=y;
y=zhong; if(y<z)
{
}
else
{
zhong = y;
y = z;
z = zhong; } }
else//z最小,那么x与z的值要先对调,对调后x又变最小,再次比对y和z
{
zhong = x;
x = z;
z = zhong;
if(y<z)
{
}
else
{
zhong = y;
y = z;
z = zhong;
}
} Console.WriteLine(x);
Console.WriteLine(y);
Console.WriteLine(z); Console.ReadLine();
//相亲过程
//女:你有房子吗
//若有---结婚吧;没有---你有钱吗
//若有---先买房子在结婚
//没有---你有能力么
//有---先赚钱再买房子在结婚
//没有---拜拜
Console.WriteLine("你有房子吗?");
string a = Console.ReadLine(); if(a=="有")
{
Console.WriteLine("结婚吧"); } else
{
Console.WriteLine("你有钱吗");
a = Console.ReadLine();
if(a=="有")
{
Console.WriteLine("先买房子在结婚");
}
else
{ Console.WriteLine("你有能力吗");
a = Console.ReadLine();
if (a == "有")
{
Console.WriteLine("先赚钱再买房子在结婚");
}
else
{
Console.WriteLine("拜拜"); } } }
//ax*x+bx+c=0判断方程是否是一元二次方程,
//和根的情况。根据公式判断方程的根的状况,
//公式的值大于零有两个根,
//等于零有一个根,小于零没有根。
Console.WriteLine("判断方程是不是一元二次方程:");
Console.WriteLine("ax^2+b*x+c=0");
Console.WriteLine();
Console.Write("请输入a=");
double a = double.Parse(Console.ReadLine()); if (a == )
{
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 - * a * c; if (de >= )
{
if (de > )
{
Console.WriteLine("此方程有两个不同的实数根。");
double x1 = (-b + Math.Sqrt(de)) / ( * a);
double x2 = (-b - Math.Sqrt(de)) / ( * a);
Console.WriteLine("x1="+x1+",x2="+x2);
}
else//de==0
{
Console.WriteLine("此方程有两个相同的实数根。");
double x1 = (-b + Math.Sqrt(de)) / ( * a);
Console.WriteLine("x1=x2=" + x1);
}
}
else //de<0
{
Console.WriteLine("方程没有实数根!");
}
}