分支和循环(上)
分支
定义:分支是控制下一步要执行哪行代码的过程,要跳转到的代码行由某个条件语句来控制。这个条件语句使用布尔逻辑,对测试值和一个或多个可能的值进行比较。
1.三元运算符
顾名思义,三元运算符有三个操作数。适用于简单的赋值语句。
语法如下:
<test> ? <resultIfTrue> : <resultIfFalse>
<test>计算可以得到一个布尔值,根据这个值来判断是<resultIfTrue>还是<resultIfFalse>。
实例:使用三元运算符测试int变量myInteger的值
string resultString = (myInteger < 10) ? "Less than 10"
: "Greater than or equal to 10";
如果myInteger小于10,那么把第一个字符串赋值给resultString,反之则把第二个字符串赋值给resultStirng。
2.if语句
if语句适用范围较广,与?:三元运算符语句不同的是,if语句没有结果(所以不在赋值语句中使用它),使用该语句是为了有条件地执行其它语句。
if语句最简单的语法:
if(<test>)
<code executed if <test> is true>;
先执行<test>(其运算结果必须是布尔值),如果为true,则执行语句之后的代码,如果为false,则不执行这行代码。
与else合并使用比较方便,如果结果为false,就执行else后面的代码。
if(<test>)
<code executed if <test> is true>;
else
<code executed if <test> is false>;
3.switch语句
根据测试的值来有条件地执行代码,一次将测试变量与多个值进行比较,而不仅是测试一个条件。
实例:
static void Main(string[] args)
{
const string myName = "karli";
const string sexyName = "angelina";
const string sillyName = "ploppy";
string name;
Console.WriteLine("What is you name?");
name = Console.ReadLine();
switch(name.ToLower())
{
case myName:
Console.WriteLine("You have the same name as me!");
break;
case sexyName:
Console.WriteLine("My,what a sexy name you have!");
break;
case sillyName:
Console.WriteLine("That's a silly name.");
break;
}
Console.WriteLine("Hello {0}!",name);
Console.ReadKey();
}
这里break语句中断switch语句的执行,而执行该结果后面的语句。
这里case语句实际上是C#代码中定义的标签,可以用goto语句来跳转。
例子中是用const定义了三个常量字符串,注意声明常量时一定要赋值,并且之后不能再次赋值。
一个case语句处理完后不能自由进行下一个case语句,但这个规则有一个例外。如果把多个case语句放在一起(堆叠他们),其后加一个代码块,实际上是一次检查多个条件,如果满足这些条件中的任何一个,就会执行代码。语法形式如下:
case 1:
case 2:
<code1>or<code2>
break;