黑马程序员——01 流控语句

------- Windows Phone 7手机开发.Net培训、期待与您交流! -------

——If类型

语法:

If(条件)

{语句块1;语句块2;······}

用一对大括号来组成语句块

执行过程:

  1. 首先判断条件的结果
  2. 如果条件为true,则执行语句
  3. 如果条件为false,则跳过语句

注意:

  1.  if后括号中的条件,必须要能计算成一个boll
  2. 默认情况下,if语句只能带1句话, 即和if语句有关系的语句只有语句1

练习:

 if的基本用法:

            int a = 3;
            if (a > 10)
            Console.WriteLine("成立");//if默认只带这一句话
            Console.WriteLine("程序结束");//此句话和if没有关系
            Console.ReadKey();

 2.小明的成绩>90,爸爸就奖励100元,反之则不奖励:

            Console.WriteLine("张三,请输入您的成绩");
            int score =Convert.ToInt32(Console.ReadLine());
            if (score > 90)
            Console.WriteLine("恭喜您,爸爸将奖励你100块!");
            Console.WriteLine("程序结束");
            Console.ReadKey();

 3.让用户输入用户名和密码,用户名为admin,密码为mypass则显示登陆成功,否则提示失败

            Console.WriteLine("请输入您的用户名");
            string name =Console.ReadLine();
            Console.WriteLine("请输入您的密码");
            string password =Console.ReadLine();
            if (name =="admin" && password=="mypass")
            {Console.WriteLine("登陆成功");}
            if (name !="admin" || password !="mypass")
            {Console.WriteLine("登陆失败");}
            Console.WriteLine("程序结束");
            Console.ReadKey();

——if-else类型

语法

If(条件)

{语句块1;}

else

{语句块2;}

执行过程:

首先判断条件

如果条件为true,则执行if带的语句块1,并且跳过else带的语句块2

如果条件为false,则提过if带的语句块1,执行else带的语句块2

练习:

1.      If-else的基本用法:

            Console.WriteLine("请输入您的语文成绩");
            int chinseScore = Convert.ToInt32(Console.ReadLine());
            if (chinseScore >= 90)
            {
                Console.WriteLine("恭喜,奖励您一百元");
            }
            else//初学者可翻译成否则
            {
                Console.WriteLine("残念,你得写一份学习总结");
            }
            Console.ReadKey();
            Console.ReadKey();

 

2.要求用户输入两个数字a和b,如果a能被b整除或者a+b>100,则输出a,否则就输出b:

            Console.WriteLine("请输入一个数");
            int a =Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请再输入一个数");
            int b =Convert.ToInt32(Console.ReadLine());
            if (a % b == 0 || (a +b) > 100)
            {
               Console.WriteLine(a);
            }
            else

            {
               Console.WriteLine(b);
            }
            Console.ReadKey();

 

3.输入成绩>=90为A,80<=且<90为B,70<=且<80为C,60<=且<70为D,<=60为E

            Console.WriteLine("请输入您的成绩");
            int score = Convert.ToInt32(Console.ReadLine());
            if (score >= 90)
            {
                Console.WriteLine("A");
            }
            else
            {//程序进入这里说明score肯定<90
                if (score >= 80)//隐含score<90
                    Console.WriteLine("B");
                else
                {//程序进入这里说明score肯定<80
                    if (score >= 70)
                        Console.WriteLine("C");
                    else
                    {
                        if (score >= 60)
                            Console.WriteLine("D");
                        else
                        {
                            Console.WriteLine("E");
                        }
                    }
                }
            }

——if-else-if

语法:

If(条件1)

{语句块1;}

else if(条件2)

{语句块2;}

执行过程:

首先判断条件1

  1. 如果条件为true,则执行if带的语句块1,并跳过else if里的语句块2
  2. 如果为false,判断else if里的条件2,并且条件排除if中的条件1的情况
  3. 如果条件2true,则执行else if里的语句块2
  4. 如果为false,则跳过语句块2,说明条件都不满足,这个时候可以继续写else if来判断

练习:

1. if-else-if的基本用法

            Console.WriteLine("请输入您的成绩");
 
            int score =Convert.ToInt32(Console.ReadLine());
            if (score >= 90)
            {
                Console.WriteLine("您的评分为A");
            }
 
            elseif (score >= 80)
            {
                Console.WriteLine("您的评分为B");
            }
 
            elseif (score >= 70)
            {
                Console.WriteLine("您的评分为C");
            }
            elseif (score >= 60)
            {
                Console.WriteLine("您的评分为D");
            }
            else
            {
                Console.WriteLine("您的评分为E");
            }
            //跳出if-elseif
            Console.ReadKey();

 2.提示用户输入密码,当密码为888888时提示正确,否则再提示用户输入一遍,若输入正确,则提示正确,否则提示错误

            Console.WriteLine("请输入您的密码");
            int password =Convert.ToInt32(Console.ReadLine());
            if (password ==888888)
            { Console.WriteLine("密码正确"); }
            else
            { Console.WriteLine("您的密码有误,请再输入一遍");
              int password2 =Convert.ToInt32(Console.ReadLine());
              if (password2 ==888888)
                  Console.WriteLine("密码正确");
              else
              {
                  Console.WriteLine("密码有误");
              }
            }
            Console.ReadKey();

 3.提示用户输入用户名,在提示输入密码,如果用户名为admin,密码为888888则提示正确,若用户名错误提示用户名不存在,用户名正确,密码错误提示密码错误     

            Console.WriteLine("请输入您的用户名");
            string usrName =Console.ReadLine();
            Console.WriteLine("请输入您的密码");
            string passWord =Console.ReadLine();
            if (usrName =="admin" && passWord=="888888")
            { Console.WriteLine("正确"); }
            elseif (usrName !="admin")
            { Console.WriteLine("用户名不存在"); }
            else
            { Console.WriteLine("密码错误"); }
            Console.ReadKey();

——switch case语句

语法:

Switch(表达式)

{

case 1:语句块1

break;

case 2:语句块2

break;

default:语句块3

break;

}

执行过程:

  1. 首先计算表达式
  2. 然后根据计算结果匹配case后面的值
  3. 如果有匹配项,则执行匹配项后面的语句,知道break语句跳出switch-case
  4.   如果所有的case值都不匹配,有default责执行default后面的语句,直到break结束
  5. 如果没有default,则跳出switch-case,什么都不执行

注意:

 每一个case标签后都必须加break;

练习:

1.输入评定等级,A来年工资涨500,B涨200,C不变,D降200,E降500:

            Console.WriteLine("请输入您的评定等级");
            string level =Console.ReadLine();
            decimal salary = 5000m;
            bool flag =true;
            switch (level)
            {
                case"A":
                    salary += 500;
                    break;
                case"B":
                    salary += 200;
                    break;
                case"C":
                    salary = salary;
                    break;
                case"D":
                    salary -= 200;
                    break;
                case"E":
                    salary -= 500;
                    break;
                default://匹配时和位置没有关系,只和值有关系
                    Console.WriteLine("您的输入有误");
                    flag = false;
                    break;
            }
            if (flag ==true)
            { Console.WriteLine("您的工资为{0}", salary); }
            Console.ReadKey();

2.提示用户分别输入年份,月份,然后告诉用户该月有多少天:

            Console.WriteLine("请输入一个年份");
            int year =Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入一个月份");
            int month =Convert.ToInt32(Console.ReadLine());
            switch (month)
            {
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:
                    Console.WriteLine("31天");
                    break;
                case 2:
                    if (year % 400 == 0 ||year % 4 == 0 && year % 100 != 0)
                    {
                       Console.WriteLine("29天");
                    }
                    else
                    {
                       Console.WriteLine("28天");
                    }
                    break;
                default:
                    Console.WriteLine("30天");
                    break;
            }
            Console.ReadKey();

3.让用户输入一个成绩,>=90输出A,90>且>=80输出B,80>切>=70输出C,70>且>=60输出D

            Console.WriteLine("请输入您的成绩");
            int score =Convert.ToInt32(Console.ReadLine());
            switch (score / 10)
            {
                case 9:
                    Console.WriteLine("您的等级为A");
                    break;
                case 8:
                    Console.WriteLine("您的等级为B");
                    break;
                case 7:
                    Console.WriteLine("您的等级为C");
                    break;
                case 6:
                    Console.WriteLine("您的等级为D");
                    break;
                default:
                    Console.WriteLine("输入错误");
                    break;
            }
            Console.ReadKey();

——while类型:

语法:

While(条件) //条件叫:循环条件

{

要循环执行的N条程序;//循环体;

}

执行过程:

先判断循环条件,如果条件为true,则转向2;如果条件为false则转向3

执行循环体,循环体执行完后转向1

跳出循环,循环结束。

特点:先判断再执行

注意:在循环体中,一定要有那么一句话,改变循环条件中的某个变量的值,使循环条件终有那么一天为false

练习:

1.打印一百次:欢迎来到传智博客

             int a = 0;
             while (a < 100)
            {
                Console.WriteLine("欢迎来到传智博客学习");
                a++;
            }
            Console.ReadKey();

2. 输入班级人数,然后依次输入学员成绩,计算班级学员的平均成绩和总成绩

            Console.WriteLine("请输入班级人数");
            int number =Convert.ToInt32(Console.ReadLine());//得到班级人数
            int score = 0;//用于存储用户输入的分数
            int a = 1;
            int sum = 0;//用于存储总成绩
            while (a <= number)
            {
                Console.WriteLine("请输入第{0}个学生的成绩", a);
                score = Convert.ToInt32(Console.ReadLine());
                sum = sum + score;//sum+=score
                a++;
            }
            Console.WriteLine("本班有{0}人,总成绩为{1},平均成绩为{2}", number, sum, sum /number);
            Console.ReadKey();

3. 老师问“这道题会做了吗”如果学生回答会了(y),则放学,若不会,则再讲一遍,在问学生是否会做了

  a)  直到会了才可以放学:

            Console.WriteLine("这道题会做了吗?");//第一问
            string choice =Console.ReadLine();
            while (choice =="n")
            {
                Console.WriteLine("那老师再给你讲一遍吧");
                Console.WriteLine("这道题会做了吗?(y/n)");
                choice = Console.ReadLine();
            }
               Console.WriteLine("好了可以放学了");
               Console.ReadKey();

 

b)  直到老师讲了十遍不管会不会都要放学:

            Console.WriteLine("这道题会做了吗?(y/n)");
            string choice2 =Console.ReadLine();
            int number = 0;
            while (choice2 =="n" && number< 10)
            {
                Console.WriteLine("那老师再讲一遍吧");
                number++;
                Console.WriteLine("这道题你会做了吗?(y/n)");
                choice2 = Console.ReadLine();
            }
            Console.WriteLine("可以放学了");
            Console.ReadKey();

——do while

语法:

do

{循环体}

while(循环条件);

  1. 执行循环体,执行完循环体转向2
  2.   判断条件是否成立,如果条件为true,则转向1,如果条件为false,则条向3
  3. 跳出循环,执行结束

注意:

假如循环条件一开始就不成立,对于while循环,一次都不执行,对于do-while循环体会执行一次。

所以,do-while的循环体一般至少会被执行一次。

While先判断,后执行

do-while先执行,后判断

练习:

 1.从1+到100的和

            int sum = 0;
            int i = 1;
            while (i <= 100)
            {
                sum = sum + i;
                i++;
            }
            Console.WriteLine("从1加到100的总和为{0}", sum);
            Console.ReadKey();

2.  要求用户输入用户名和密码,只要用户名不是admin,密码不是888888的都提示用户名或密码输入错误,请重新输入

            string name;
            string passWord;
            do
            {
                Console.WriteLine("请输入用户名");
                name = Console.ReadLine();
                Console.WriteLine("请输入密码");
                passWord = Console.ReadLine();
                if (name !="admin" || passWord !="888888")
                {
                    Console.WriteLine("用户名或密码输入错误,请重新输入");
                }
            } while (name != "admin" || passWord !="888888");
            Console.WriteLine("验证通过");
            Console.ReadKey();

3. 不断要求用户输入一个数字,并打印它的两倍,直到输入q结束程序:

            int number;
            bool flag =true;
            do
            {
                try
                {
                    Console.WriteLine("请输入一个数字");
                    number = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("{0}的两倍数位{1}", number, number * 2);
                }
                catch
                { flag = false; }
            } while (flag);
            Console.WriteLine("程序结束");
            Console.ReadKey();

——for循环

语法:

For(表达式1;表达式2;表达式3

{

循环体

}

For循环一般用于已知循环次数的循环

一般情况下:

表达式1用于定义循环变量和对循环变量赋初值

表达式2为循环条件

表达式3用于改变循环变量的值

执行过程:

  1. 计算表达式2(循环条件),如果表达式2的值为true.则转向第3
  2. 如果表达式2的值为false,转向第5
  3. 执行表达式2,转向第2
  4. 循环结束。  

水仙花数:

  1. 是一个三位数,设三位数为cba
  2. 如果满足a^3+b^3+c^3=cba
  3.  则这个数为水仙花数

嵌套循环:

            for (int i = 0; i < 10;i++)
            {                                   //属于外层循环
                for (int j = 0; j < 10;j++)
                {
                    Console.WriteLine("我爱你"); //属于内层循环
                }
                                                //属于外层循环
             }
 
            Console.ReadKey(); //该语句循环了40次


先执行外层循环再执行内层循环

练习:

1.99乘法表     

            for (int i = 1; i <= 9;i++)
            {
                for (int j = 1; j <= 9;j++)
                {                              //第i行的第j个式子
                    Console.Write("{0}X{1}={2:00}  ", i, j, i * j);//在占位符里加“:00”会自动变成两位数
                }
                Console.WriteLine(); //每循环完一次就空一行
            }
            Console.ReadKey();

2. 梯形99乘法表

            for (int i = 1; i <= 9;i++)

            {
                for (int j = 1; j <= i;j++)
                {
                    Console.Write("{0}X{1}={2}  ", i, j, i * j);
 
                }
                Console.WriteLine();
            }
            Console.ReadKey();

3.根据用户输入的值输出加法表 :

            int j=0;
            bool flag=false;
            while(flag==false)
            try
            {
                Console.WriteLine("请输入一个数字");
                j = Convert.ToInt32(Console.ReadLine());
                for (int i = 0; i <= j;i++)
                {
                    Console.WriteLine("{0}+{1}={2}", i, j - i, j);
                    flag = true;
                }
                
             }
            catch
            {
              Console.WriteLine("您输入的不是数字,请重新输入");
              flag = false;
            }
 
            Console.ReadKey();


 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 请写1个支付宝接龙红包程序. 随机产生1-100的随机数,作为红包金额. 让用户不断的去猜,直到猜正确为止.最后发给用户的红包金额是 红包金额/猜得次数. 2. 循环录入5个人的年龄并计算平均年龄,如果录入的数据出现负数或大于100的数,立即停止输入并报错. 3. 实现要求用户一直输入QQ号码和密码,只要不是123456、888888就一直提示要求重新输入,如果正确则提登录成功. 4. 1-100之间不能够被7整除的数的和. 5. 求1-200之间的所有的整数的累加和 6. 求1-100之间6的倍数的个数 7. 输入班级人数,然后依次输入学员成绩,计算班级学员的平均成绩和总成绩 8. 2006年培养学员80000人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人?*** 9. 从键盘输入10个数,求出最大数 10. 1000~ 5000之间有多少整数,其各位数字之和为5,分别是哪些数(例如整数2003的各位数字之和为 2+0+0+3 ,等于5)), 并统计满足条件的整数有多少个。 11. 求1-100中 是7的倍数 的数值之和 12. 求1-1000之间的所有的奇数之和 13.猜数字游戏. 随机产生1个1-100之间的数 让用户猜 当用户输入的数比产生的随机数大 就输出 猜大了 并让用户继续输入新的数.。 当用户输入的比产生的随机数小的时候 就输出 猜小了 并且继续猜 当用户刚好输入的就是这个随机数的时候 提示成功 并显示用户猜了多少次. 14. 老师问学生,这道题你会做了吗? 如果学生答"会了(y)",则可以放学. 如果学生不会做(n),则老师再讲一遍,再问学生是否会做了......直到学生会为止,才可以放学. 直到学生会或老师给他讲了10遍还不会,都要放学 15. 写1个程序. 随机的产生1个2位数的加法运算.让用户输入这个运算的结果 然后判断这个结果是否正确. 来10次. 每个人默认有10分. 产生10个加法运算.操作数的范围在0-100之间. 每产生1个加法运算 就让用户输入结果.判断是否正确. 当回答正确的时候就为用户加1分. 错误的时候就扣1分. 当10道题目回答完毕之后 就显示用户得的分数. ***
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值