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