您的位置:首页 - 教程 - C# - 正文
C#中的分支结构与循环

1.语句 语句块

以分号结束的单行代码
一系列的单行语句 语句块{}

声明语句
流程控制语句
异常处理语句

2.选择语句:用于根据一个或多个指定条件分支到不同的代码段

if/else:

if(条件表达式)
//条件表达式:关系运算符链接的表达式a>b 逻辑运算符 score>=0&&score<=200 bool类型的变量
{
//当条件表达式为true执行的操作
}
else
{
//不满足条件表达式时执行的操作
}

例子:
//if else
Console.WriteLine("请输入成绩?");
int score = int.Parse(Console.ReadLine());
if (score>90)
{
Console.WriteLine("奖励棒棒糖!");
}
else
{
Console.WriteLine("卷铺盖回家!");
}
Console.ReadKey();

if/else if/else:

if(条件表达式1)
{
//满足条件表达式1执行的操作
}
else if(条件表达式2)
{
//满足条件表达式2执行的操作
}
else
{
//其它条件下执行的操作
}

例子:

//用if else if实现输入月份判断当月天数
Console.WriteLine("请输入月份?");
int m = int.Parse(Console.ReadLine());
if (m>=1&&m<=12)
{
if (m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12)
{
Console.WriteLine("{0}月有31天", m);
}
else if (m == 2)
{
Console.WriteLine("{0}月有28天", m);
}
else
{
Console.WriteLine("{0}月有30天", m);
}
}
else
{
Console.WriteLine("请输入有效月份?");
}
Console.ReadKey();

switch/case:
注:
break:每个分支语句必须添加break case或default后边没有语句除外
case:常量值不能重复
default:省略 位置 任意所有的case都不满足才执行

switch(表达式)
{
case 值1:
语句1;
break;
case 值2:
语句2;
break;
case 值3:
语句3;
break;
case 值4:
语句4;
break;
......
default:
语句5

例子: //switch case
Console.WriteLine("请输入月份?");
int m = int.Parse(Console.ReadLine());
int days = 0;
switch (m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days = 31;
break;
case 4:
case 6:
case 9:
case 11:
days=30;
break;
case 2:
days = 28;
break;
default:
Console.WriteLine("输入错误,请重新输入!");
break;
}
if (days!=0)
{

Console.WriteLine(days);
}
Console.ReadKey();
}

3.循环语句:

概念:用于遍历集合或数组,或重复执行同一组语句直到满足指定的条件
初始化:循环条件中用到的变量 声明并赋值
循环条件:重复执行操作的条件
条件的更新:改变循环条件中变量的值
循环操作:重复做的事

for循环:

例子:(以跑10000米为例--25圈)
初始化: int count=0;
循环条件: count<25
条件的更新:count++
循环操作:console.writeLine(i);

特点:先判断后循环,适合有固定循环次数的时候使用

语法:
for(初始化;循环条件;条件的更新 )
{
循环操作,重复做的事
}

代码例子:
//用for循环计算从1加到100的值并输出结果
int sum = 0;
for (int i = 0; i <= 100; i++)
{
sum = sum + i;
}
Console.WriteLine(sum);
Console.ReadKey();

//用for循环计算从1加到100的值并输出结果

int sum = 0;
for (int i = 1; i <100; i++)
{
if (i%2==0)
{
sum = sum + i;
}
}
Console.WriteLine(sum);
Console.ReadKey();


while循环:执行一个语句或语句块,直到指定的表达式计算为false

特点:先判断后循环,适合循环条件固定的时候

语法:
while(条件)
{
循环体
}

代码例子:
//while 接收键盘输入,输入0的时候结束。
Console.WriteLine("请输入成绩,输入0表示输入完毕!");
int num = int.Parse(Console.ReadLine());
while (num!=0)
{
num = int.Parse(Console.ReadLine());
}
Console.WriteLine("录入结束!");
Console.ReadLine();

 

 

do while循环:do语句重复执行{}里的一个语句或语句块,直到指定的表达式计算为false;

特点:先执行操作后判断,适合第一句无论如何都必须执行的情况
语法:
初始化
do
{
//循环操作,更新
}
while(条件);


foreach

4.跳转:用于将控制转移到指定的代码段

break:语句可用于退出循环
continue:语句可用于跳过当前循环并开始下一循环
goto:

练习1:累加100以内的能被9整除的数字之和,要使用continue。

for (int i = 1; i <= 100; i++)
{
if (i % 5 == 0 && i % 3 == 0)
{
Console.WriteLine("flip\t");
}
else if (i%3 == 0)
{
Console.Write("flop\t");
}
else if (i % 5 == 0)
{
Console.WriteLine("flipflop\t");
}
else
{
Console.Write(i+"\t");
}
}
Console.ReadKey();


练习2: if循环嵌套典型案例
你准备去海南旅游,现在要订购机票。机票的价格受季节旺季、淡季影响,
而且头等舱和经济舱价格也不同。假设机票头等舱原价为5000元,经济舱原价3500,
4~10月为旺季,旺季头等舱打九折,经济舱打八折,淡季头等舱打五折,经济舱打四折。
编写程序,使用嵌套if选择结构,根据出行的月份和选择的舱位输出实际的机票价格.

Console.WriteLine("请输入想要旅游的月份");
int month = int.Parse(Console.ReadLine());
Console.WriteLine("请输入您选择的仓位,A:头等舱 B:经济舱");
string input = Console.ReadLine();
int a = 5000;
int b = 3500;
if (month >= 1 && month <= 12)//确定有效月份
{
if (month > 4 && month < 10)//旺季月份
{
if (input=="A")//头等舱
{
Console.WriteLine("{0}月份头等舱的票价是{1}", month, a * 0.9);
}
else
{
Console.WriteLine("{0}月份经济舱的票价是", month, b * 0.8);
}
}

else//淡季月份
{
if (input=="B")//头等舱
{
Console.WriteLine("{0}月份头等舱的票价是{1}", month, a * 0.4);
}
else
{
Console.WriteLine("{0}月份头等舱的票价是{1}", month, a * 0.5);
}
}
}
else
{
Console.WriteLine("请输入有效月份");
}
Console.ReadKey();

 

总结:
1.语句块

2.选择语句
if
switch

3.循环
for
while
do...while


评论: