------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------
(1)在我们c#中我们常用到几种条件结构
if if-else if-else if switch
那么它们的具体执行过程是怎样的?
if(条件)
{
语句1}
执行过程:首先判断条件的结果,如果条件为true,则执行语句1,如果为false,则跳过语句1执行后面的代码。
例题:
//判断张三的语文和音乐成绩在两种条件下能否满足条件,拿到奖励
Console.WriteLine("请输入张三的成绩");
Console.WriteLine("请输入张三的语文成绩");
int chinese = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("请输入张三的音乐成绩");
int music = Convert.ToInt32(Console.ReadLine());
if(chinese>=90&&music>80||chinese==100&&music>=70)
{
Console.WriteLine("奖励100元");
}
Console.ReadKey();
以上编程实现的是如果张三的语文成绩大于等于90并且音乐成绩大于80或者语文成绩大于等于100并且音乐大于等于70,就会得到奖励。如果if中条件为false,则不会执行语句的输出。
if(条件)
{语句1}
else
{语句2}
执行过程:如果条件为true,程序执行if带的语句1,并跳过else带的语句2,如果条件为false,则跳过if的语句1,执行else的语句2。
例如: //if else的实例 如果张三的成绩大于90会得到奖励,如果达不到写学习总结
Console.WriteLine("请输入张三的考试成绩");
int grade = Convert.ToInt32(Console.ReadLine());
if (grade > 90)
{
Console.WriteLine("奖励100元");
}
else
{
Console.WriteLine("写学习总结");
}
Console.ReadKey();
以上编程实现的是如果张三的成绩大于90就会执行语句1,得到奖励,如果达不到要求,则执行语句2,写学习总结。
if-else if
执行过程:只有当上一个条件不成立时,才会进入下一个if语句,并执行if语句后面的条件判断,一旦有一个if后面的条件为true,则执行此if后所带的语句或语句块,程序跳出if-else if结构,如果所有if都不成立,则执行最后else语句,若最后无else,则什么都不执行。
switch(表达式)
{
case 1:语句1;
break;
case 2:语句2;
break;
case 3:语句3;
break;
}
执行过程:首先计算表达式,然后根据计算结果与匹配case后面的值,如果有匹配项,则执行匹配项后面的语句,直到break语句跳出switch-case,如果所有的case值都不匹配,那么有default,则执行default后面的语句,直到break结束,如果没有default,则跳出switch-case,什么都不执行。
例如://用switch-case来判断成绩评级
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("E");
break;
}
Console.ReadKey();
以上程序实现的是输入某人的成绩,用switch来选择语句,执行语句后面的程序。
(2)循环结构
我们常用到的循环结构:
while do-while for foreach
首先它们各自的执行过程?
while(条件表达式)
{语句1}
执行过程:先判断循环条件,如果条件为true,则转向下一步执行循环体,循环体执行完后转向循环条件。
例如: //while 的简单用法
int i = 0;
while (i < 10)
{
Console.WriteLine("第[0]次写下次考试要细心",i=1);
i++;
}
Console.ReadKey();
首先判断条件,只要i小于10就执行循环体,直到循环条件为false,循环结束。
do
{
语句1
}while();
执行过程:首先执行循环体,执行完后转向条件的判断,如果为true则继续执行循环体,直到循环条件为false,跳出循环。
例如:
//明天小兰就参加舞蹈比赛了,老师让她跳一遍,如果满意就让她回家休息,不满意就继续跳
string answer;
do
{
Console.WriteLine("小兰跳了一遍");
Console.WriteLine("老师您满意吗?y/n");
answer = Console.ReadLine();
while (answer != "y" && answer != "n")//此项while用于判断用户输入的是否是正确的字符
{
Console.WriteLine("请输入正确的字符");//直到输入正确的字符才跳出循环
answer = Console.ReadLine();
}
} while (answer == "n");
Console.WriteLine("跳的不错,可以回家休息了");
Console.ReadKey();
以上程序首先小兰先跳一遍,如果老师不满意就继续跳,直到老师满意为止,循环结束。
for(表达式1;表达式2;表达式3)
{
语句1
}
执行过程:首先判读表达式2的值,如果为真,则执行语句1,然后执行表达式3,然后继续执行表达式2,直到为假为止,循环结束。如果开始表达式2的值就为false,那么不执行循环体,表达式3也不执行。
例如: //乘法口诀表
for (int i = 1; i <= 9; i++)
{ //外层循环
for (int j = 1; j <= i; j++)//每行输出的式子由行数决定,故内循环循环次数须由
//i来控制
{
Console.Write("{0}*{1}={2}\t", j, i, i * j);//第一排不换行,用Write
}
Console.WriteLine();//第一次内循环结束后要换行
}
Console.ReadKey();
以上程序实现的是双层循环,单讲完成循环,执行表达式2,为真则执行内层循环,执行完后执行i++,直到i<=9不成立,循环结束。
foreach(类型 元素 in 集合或者数组)
{
语句1
}
执行过程:循环体一次取出集合或者数组中的每一个元素,然后对每个元素都执行一次循环体的操作。
例如: int[] array = { 0, 1, 2, 3, 4 };
Console.Write("数组中{0}个元素的值:", array.Length);
foreach (int item in array)
{
Console.Write(item + " ");
}
Console.ReadKey();
这个程序实现的是取出array中每一个元素都加上一个空格。
(3)三元表达式
三元表达式:表达式1?表达式2:表达式3;
执行过程,首先计算表达式1,表达式1是一个可以计算成bool类型的值,如果为true,则表达式2的值作为整个表达式的值,如果表达式1的值为false,则表达式3的值作为整个表达式的值。
(4)总结易错点,注意事项
if 后面括号最后中的条件,要能计算成一个bool类型的值,默认情况下,if语句只能带一句话,即和if有关系的只有语句1。
if else 中易错点,例如:
int age=15;
char sex='f';
if(age<10)
if(sex=='f')
{Console.WriteLine("小女人");}
else
{Console.WriteLine("你长大了");}
最后什么都不输出,因为else永远和最近的if组成一对。
switch中不管defalut在哪,都执行匹配项,没有匹配项才执行defalut。
if-else if与switch的比较:
相同点:都可以实现多分支结构
不同点:switch一般只能用于等值比较 而if-else if可以处理范围
while循环中需要注意的是:
再循环中重要有那么一句话,改变循环条件中某个变量的值,使循环条件总有一天为false。
实现n次循环就是初始值i=0,条件是i<n,注意代表的次数。
foreach需要注意:
foreach不会改变集合中的值。
break和continue的区别:
break:用在循环中立即跳出循环,跳出的是break所在的循环。
continue:用于循环中,立即结束本次循环,就是不再执行continue下面的语句,直接进入下一次循环。
------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------