为什么使用流程控制?
有的时候我想根据程序中当时的环境执行不同的代码,或者有的时候需要重复执行某段代码。这两种方法就是需要用到流程控制中的分支和循环。
分支:有条件的执行代码
循环:重复执行相同的代码
布尔运算符:
布尔运算符-处理布尔值:
条件布尔运算符:
布尔赋值运算符:
goto语句:
在程序中我们可以给代码加上标签,这样就可以使用goto
语句直接调到标签的地方去执行
goto语句的语法
goto <labelName>;
标签定义
<labelName>:
实例:
int myInteger = 5;
goto myLabel;
myInteger ++;
myLabel:
Console.WriteLine(myInteger);
if语句 :
if的语法
if(<test>)
<code executed if <test> is true>
先执行<test>,如果结果是true就执行
案例:
bool var1 = true;
if(var1)
Console.WriteLine(var1);
if else语法
if(<test>)
<code executed if <test> is true>
else
<code executed if <test> is false>
如果if和else要执行的代码有多行,可以加上{}组成一个块
if(<test>){
<code executed if <test> is true>
}else{
<code executed if <test> is false>
}
三元运算符:
语法
<test> ? <resultIfTrue> : <resultIfFalse>
示例
string resStr = (myInteger<10) ? "Less than 10":"Greater than or equal to 10"
if语句的其他结构:
if (){
}else if(){
}else if(){
}else{
}
else if可以有0或者多个
else 只能有0或者1个
switch语句:
switch语句类似于if语句,switch可以用来将测试变量跟多个值
进行比较。switch的语法结构如下:
switch (<testvar>){
case <comparisonVal1>:
<code to execute if <testvar> == <comparisionVal1>>
break;
case <omparisonVal2>:
<code to execute if <testvar> == <comparisionVal2>>;
break;
...
case <comparisionN>:
<code to execute if <testvar>==<comparisionValN>>;
break;
default:
<code to execute if <testvar>!=<comparisionVals>>
break;
}
<testvar> 这里不管直接放一个字面值还是变量,它的类型是数值类型跟char类型
while循环:
语法结构
while(<test>){
<code to be looped>
}
for循环:
语法结构
for(<initialization;<condition>;<operation>>){
<code to loop>
}
<initialization>是初始化,这里可以定义一个变量,也可以给变量赋值
<condition>是判断是否执行循环的条件
<operation>每次执行完循环都会执行operation代码
循环的中断 break(终止当前循环)。循环的中断 continue(终止当前循环继续下一个循环)。循环的中断 return 跳出循环(跳出函数)。