黑马程序员——01 流控语句
来源:互联网 发布:淘宝全网数据分析工具 编辑:程序博客网 时间:2024/04/28 12:20
——If类型
语法:
If(条件)
{语句块1;语句块2;······}
用一对大括号来组成语句块
执行过程:
- 首先判断条件的结果
- 如果条件为true,则执行语句
- 如果条件为false,则跳过语句
注意:
- if后括号中的条件,必须要能计算成一个boll类
- 默认情况下,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
- 如果条件为true,则执行if带的语句块1,并跳过else if里的语句块2
- 如果为false,判断else if里的条件2,并且条件排除if中的条件1的情况
- 如果条件2为true,则执行else if里的语句块2
- 如果为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;
}
执行过程:
- 首先计算表达式
- 然后根据计算结果匹配case后面的值
- 如果有匹配项,则执行匹配项后面的语句,知道break语句跳出switch-case
- 如果所有的case值都不匹配,有default责执行default后面的语句,直到break结束
- 如果没有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(循环条件);
- 执行循环体,执行完循环体转向2
- 判断条件是否成立,如果条件为true,则转向1,如果条件为false,则条向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:用于改变循环变量的值
执行过程:
- 计算表达式2(循环条件),如果表达式2的值为true.则转向第3步
- 如果表达式2的值为false,转向第5步
- 执行表达式2,转向第2步
- 循环结束。
水仙花数:
- 是一个三位数,设三位数为cba
- 如果满足a^3+b^3+c^3=cba
- 则这个数为水仙花数
嵌套循环:
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();
- 黑马程序员——01 流控语句
- 黑马程序员--C#流控语句
- 黑马程序员--02 C#流控语句
- 黑马程序员——条件语句、循环
- 黑马程序员——switch case语句
- 黑马程序员——Switch语句小结
- 黑马程序员——流程控制语句
- 黑马程序员——语句 函数 数组
- 黑马程序员——流程控制语句
- 黑马程序员—分支语句的总结
- 黑马程序员—循环语句和跳转语句
- 黑马程序员——学习日记3(if语句,while语句,for语句)
- 黑马程序员————嵌套语句(1)
- 黑马程序员————If语句
- 黑马程序员——Java基础——语句,函数
- 黑马程序员——Java基础知识——语句、函数
- 黑马程序员——基础知识——语句结构
- 黑马程序员——语言基础——循环语句
- 防手贱必备——python 自动关窗口
- 最大公约数和最小公倍数
- 最大公约数和最小公倍数(2)
- Git学习笔记
- Git常用命令
- 黑马程序员——01 流控语句
- 百度面试经历
- Dropbox做私有Git服务器
- 孙鑫VC++深入详解:Lesson5 Part1 文本插入符Caret,位图插入符,窗口重绘
- 百度最新面试题集锦
- junit 4详解
- struts2 OGNL
- Ubuntu中安装和配置 Java JDK,并卸载自带OpenJDK(以Ubuntu 12.04为例)
- 使用Xml类下的newPullParser ()、newSerializer ()方法,解析xml数据和序列化生成xml数据