---------------------- Windows Phone 7手机开发.Net培训 期待与您交流! ----------------------
顺序结构:
语句顺序执行
默认情况下都是顺序执行
分支结构
1、if结构
if结构的基本语法:
if(条件:关系表达式或逻辑表达式)
语句1:
执行过程:首先判断条件的结果,如果条件为true则执行语句如果为false,则执行后面的语句
注意:条件必须是bool类型
if语句只能带一句话,即和if语句有关的语句只有语句1
可以用一对大括号来组成语句块
要求,在写程序时,哪怕if语句只带一句话,也要把它写在大括号中
2、if else
if (条件)
{语句1
}
else
{语句2
}
3、if -else if
int age=15;
char sex='f';
if (age < 10)
if(sex == 'f')
Console.WriteLine("小女人");
else
Console.WriteLine("你长大了");
什么都没有!else永远与之最近的是一对
所以要养成写{}的好习惯
4、练习:提示用户输入用户名,然后在提示输入密码,如果用户名是“admin”并且密码是“888888”则提示输入成功,否则,如果用户名不是admin提示用户名不存在,如果用户名是admin密码不正确则提示密码错误。
Console.WriteLine("请输入用户名");
string userName =Console.ReadLine();
Console.WriteLine("请输入密码");
string password =Console.ReadLine();
if (userName =="admin" && password == "888888")
{
Console.WriteLine("登陆成功");
}
else if (userName !="admin")
{
Console.WriteLine("您输入的用户名不存在");
}
else
{
Console.WriteLine("密码错误!");
Console.ReadLine();
5、练习:提示用户输入年龄,如果大于等于18岁,则告知用户可以观看,如果大于10岁小于18岁则提示用户是否继续观看(yes no),如果输入yes则可以看,如果输入的是no则提示你放弃了观看,如果用户小于10岁则不允许观看,
Console.WriteLine("请输入你的年龄,此片涉及暴力");
int age = Convert.ToInt32(Console.ReadLine());
if (age >= 18)
{
Console.WriteLine("你可以看");
}
else if (age > 10)
{
Console.WriteLine("你确定要看吗?");
string input = Console.ReadLine();
if (input ="yes")
{
Console.WriteLine("请观看");
}
else
{
Console.WriteLine ("你放弃了观看");
}
}
//年龄小于10岁
else
{
Console.WriteLine ("你年龄太小不能观看");
}
Console.WriteLine();
6、switch case语句
Switch(表达式)
{
case值1:语句块1;
break;
case 值2:语句块2;
break;
default:语句块3;
break;
}
首先计算表达式的值,与case后面的值相匹配,如果有则执行匹配后面的语句,如果没有匹配值则执行default,如果没有default则跳出switch case什么都不执行
7、if else if 和switch case的比较
相同点:都可以实现多分支结构
不同点:switch 只能用于等值比较
if else if:可以处理范围
8、赋值表达式完成赋值之后 等号左边的变量的值就是整个表达式的值
9、例:
李四的年终工作评定,如果定为A级,则工资涨500元,如果定为B级,则工资涨200元,如果定为C级,工资不变,如果定为D级工资降200元,如果定为E级工资将500元。
设李四的原工资为5000元,请用户输入李四的评级,然后输出李四来年的工资水平。
Console.WriteLine("请输入用户的评级(A-E?)");
string input =Console.ReadLine();
decimal salary = 5000;
bool flag = false;
switch (input)
{
case "A":
salary += 500;
break;
case "B":
salary += 200;
break;
case "C":
break;
case "D":
salary -= 200;
break;
case "E":
salary -= 500;
break;
default:
Console.WriteLine("您输入的字母有问题,请重新输入");
flag = true;
break;
}
Console.WriteLine("李四的工资是{0}",salary);
Console.ReadLine();
10、练习switch case
请输入年份输入月份,输出该月有多少天
Console.WriteLine("请输入年份");
int year =Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入月份");
int month =Convert.ToInt32(Console.ReadLine());
switch (month / 10)
{
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.ReadLine ();
引申:直接输入日期判断是星期几?
直接输入日期判断是这一年的第几天?
直接输入某年的第几天,判断是几月几号?
循环结构
11、
while 循环的语法:
while (循环条件)
{
循环执行的程序;//循环体
}
while(sum<250000)
{
要执行的循环体;
}
执行过程:
1、判断循环条件,如果条件为true则执行2,如果为false则执行3
2、执行循环体,循环体执行完之后转向1
3、跳出循环,循环结束
特点:先判断,后执行
注意:再循环体中,一定要有一句话,改变循环条件中的某个变量的值,使循环条件终有为false的可能,否则为死循环
inti = 0;
while (i < 10)
{
console.writeline("下次要小心");
i++;
}
Console.Readline();
12、例
输入班级人数,然后依次输入每个学生的成绩,计算全班成绩的平均成绩和总成绩。
Console.WriteLine("请输入你们班有多少人?");
int count =Convert.ToInt32(Console.ReadLine());
int score = 0;
int i = 0;
int sum = 0;
while (i < count)
{
Console.WriteLine("请输入第{0}个同学的学习成绩", i + 1);
score =Convert.ToInt32(Console.ReadLine());
sum = sum + score;
i++;
}
Console.WriteLine("本班有{0}个学生,总成绩为{1},平均成绩为{2}", count, sum, sum /count);
Console.ReadLine();
引申:注意:记得sum=0;赋初值
13、
do while语法
do
{循环体;
} while();
注意:while后面有“;”
执行过程:
1、先执行循环体,循环体执行完之后转向2
2、判断循环条件,如果条件为true则执行1,如果为false则执行3
3、跳出循环,循环结束
特点:先执行,后判断
因此:while中条件不符合则一次也不执行
do while中条件不符合却至少已经执行过一次
14、引出:在输入后判断是否输入的是(y/n)如果输入不是提示字母错误。
例: string answer = "y";
do
{
Console.WriteLine("小兰表演一遍舞蹈");
Console.WriteLine("老师,你满意了吗?");
answer =Console.ReadLine();
while (answer !="y" && answer != "n")
{
Console.WriteLine("只能输入y和n,请重新输入!");
answer = Console.ReadLine();
}
}
while (answer =="n" );
Console.WriteLine("跳的不错了,你可以回家了");
Console.ReadLine();
循环判断do-while有时候也可以和try-catch进行转换
15、检测异常
try
{
将有可能出错的语句放到这里;
Console.WriteLine(“输入成功”);//提示没有错误
}
catch
{
}
例:
Console.WriteLine("请输入张三的分数");
try
{
int score =Convert.ToInt32(Console.ReadLine());
}
catch
{
Console.WriteLine("你输入的不是数字");
}
Console .WriteLine("over");
Console.ReadLine();
16、例:
要求:用户输入的用户名和密码是admin和888888,如果输入的不正确将一直提示输入用户名和密码错误请从新输入。
string userName;
string password;
bool flag = false;
do
{
flag = false;//注意如果不重置将会在下面赋true之后一直为true,将会是死循环
Console.WriteLine("请输入用户名");
userName =Console.ReadLine();
Console.WriteLine("请输入密码");
password =Console.ReadLine();
if (userName !="admin" || password != "888888") ;
{
Console.WriteLine("你输入的用户名和密码错误,请从新输入");
flag = true;//整个程序中只有此一处赋值语句
}
} while (flag);//如果在循环时不重置将会一直为true
Console.WriteLine("登陆成功");
17、a、从键盘输入数字,输出这个数字的二倍,如果输入的不是数字则结束程序
int input;
bool flag = true;
do
{
try
{
Console.WriteLine("请输入一个数字");
input =Convert.ToInt32(Console.ReadLine());
Console.WriteLine("{0}的二倍是{1}", input, input * 2);
flag = true;
}
catch
{
Console.WriteLine("你输入的格式有误,结束输入");//引申:如果想提示重新输入则另想循环!
flag = false;
}
} while (flag);
Console.ReadLine();
b、从键盘输入一个数字显示这个数的二倍,如果遇到输入q则结束输入。
string input;
int number;
Console.WriteLine("请输入一个数(q结束)");
input =Console.ReadLine();
while (input !="q")
{
number =Convert.ToInt32(input);
Console.WriteLine("{0}的二倍是{1}", number, number * 2);
Console.WriteLine("请输入一个数(q结束)");
input =Console.ReadLine();
}
Console.ReadKey();
c、从键盘输入数字,直到输入end是结束程序并显示所有输入的数字中的最大值
int max = 0;
string input ="";
int number = 0;
do
{
try
{
Console.WriteLine("请输入一个数");
input =Console.ReadLine();
number =Convert.ToInt32(input);
if (number >max)
{
max = number;
}
}
catch
{
if (input !="end") ;
{
Console.WriteLine("你输入的是非法数据,请重新输入!");
}
}
} while (input !="end");
Console.ReadLine();
18、程序的调试
最快的时间将错误找到!
出错分为两大类:a语法错误 编译器的错误
b逻辑错误 运行时的错误
设置断点
单步运行
观察变量
快速监视 变量或者表达式的值
根据语法是否符合
19、for循环
for 循环用于已知循环次数
while可以判断未知
语法:
for (表达式1;表达式2;表达式3)
{循环体;
}
表达式1:定义和初始化循环变量,表达式2:循环条件,表达式3:用于改变循环变量的值
执行过程:
1、计算表达式1,转向第2步
2、计算表达式2(循环条件)。如果表达式2为true,转向第3步,如果表达式2的值为false
转向第5步
3、执行循环体,转向第4步
4、执行表达式3,转向第2步
5、循环结束
while do-while for 三种循环可以相互转换
20、循环的嵌套
练习 冒泡排序法
for (int i = 0; i < num.Length - 1;i++)
{
for (int j = 0; j < num.Length - 1 -i; j++)
{
if (num[j] >num[j + 1])
{
int temp = num[j];
num[j] = num[j + 1];
num[j+ 1] = temp;
}
}
}
21、乘法口诀
static void Main(string[]args)
{
int i, j;
for (i = 1; i <= 9;i++)
{
for (j = 1; j <=i; j++)
{
Console.Write("{0}*{1}={2}\t",j, i, i * j);//i在前还是j在前输入的格式不一样,j在前时与平时常见的是一致的。
}
Console.WriteLine();
}
Console.ReadLine();
23、输出菱形
找关系:每一行i与空格数和*个数之间的关系
static void Main(string[] args)
{
int i, j, k;
for (i = 0; i <= 3;i++)
{
for (j = 0; j <=2 - i; j++)
Console.Write(" ");
for (k = 0; k <=2 * i; k++)
Console.Write("*");
Console.WriteLine();
}
for (i = 0; i <= 2;i++)
{
for (j = 0; j <=i; j++)
Console.Write(" ");
for (k = 0; k <=4 - 2 * i; k++)
Console.Write("*");
Console.WriteLine();
}
Console.ReadLine();
跳转语句
21、break和continue区别
break :退出当前循环体
可以用于switch-case判断中,用于跳出switch
用在循环中,用于立即跳出(终止)循环
注意:用于循环中时跳出的是break所在的循环
continue:结束本次循环,进入下一次循环
立即结束本次循环判断循环条件,如果成立则进入下一次循环否则退出循环
while continue 循环条件的判断
goto最好不用,可以用标签break标签break嵌套来代替
--------------------- Windows Phone 7手机开发.Net培训 期待与您交流! ----------------------
详情请查看: