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();

 

posted @ 2016-03-08 08:48  魅影星魂  阅读(310)  评论(0编辑  收藏  举报