《C#入门经典》学习笔记(流程控制)
2007-06-06 13:44
225 查看
流程控制
程序流程就是C#代码行的执行顺序
两种方法控制流程:
1 分支:有条件地执行代码
2 循环:重复执行相同的语句
布尔逻辑
bool类型有两个值:true或false
比较运算符(关系运算符)
运算符 类别 范例
== 二元 var1=var2==var3;
!= 二元 var1=var2!=var3;
< 二元 var1=var2<var3;
> 二元 var1=var2>var3;
<= 二元 var1=var2<=var3;
>= 二元 var1=var2>=var3;
注:var1是bool变量,var2和var3可以是各种类型
布尔运算符
用于布尔值
运算符 类别 范例 说明
! 一元 var1=!var2; 逻辑非
^ 二元 var1=var2^var3; 逻辑异或(有且仅有一个是true)
& 二元 var1=var2&var3; 逻辑与
| 二元 var1=var2|var3; 逻辑或
&& 二元 var1=var2&&var3; 逻辑与
|| 二元 var1=var2||var3; 逻辑或
注:"&&"和"||"的效率比"&"和"|"高,因为前者当第一个操作数就确定结果的话就不再考虑第二个操作数,而后者总是要计算
位运算符
位运算符实际上处理的是储存在变量中的一系列位,而不是变量的值
&运算符
操作数1的位 操作数2的位 &结果的位
1 1 1
1 0 0
0 1 0
0 0 0
|运算符
操作数1的位 操作数2的位 |结果的位
1 1 1
1 0 1
0 1 1
0 0 0
^运算符
操作数1 操作数2 ^结果的位
1 1 0
1 0 1
0 1 1
0 0 0
~运算符(一元运算符,取反)
操作数的位 ~结果的位
1 0
0 1
<<和>>位移运算符
运算符 类别 范例 说明
>> 二元 var1=var2>>var3; var1等于var2二进制值右移var3位的值
<< 二元 var1=var2<<var3; var1等于var2二进制值左移var3位的值
布尔赋值运算符
运算符 类别 范例 说明
&= 二元 var1&=var2; var1等于var2&var3
|= 二元 var1|=var2; var1等于var2|var3
^= 二元 var1^=var2; var1等于var2^var3
>>= 一元 var1>>=var2; var1等于var1二进制值右移var2位的值
<<= 一元 var1<<=var2; var1等于var1二进制值左移var2位的值
运算符的优先级
优先级由高到低
++ -- (前缀) + - (一元) () ! ~
* / %
+ -
<< >>
< > <= >=
== !=
&
^
|
&&
||
= += -= *= /= %= <<= >>= &= ^= |=
++ -- (后缀)
goto语句
c#允许给代码行加上标签,可以使用goto语句跳转到标签(建议不使用)
优点:方式简单
缺点:过多地使用将使代码很难读懂
例如:
int myInteger = 17;
goto myLabel;
myInteger++;
myLabel://标签
Console.WriteLine("{0}", myInteger);
将跳过myInteger++;直接显示17
分支
分支是控制下一步要执行哪些代码的过程
分支技术:三元运算符、if语句、switch语句
三元运算符
语法:
<test> ? <resultIfTrue> : <resultIfFalse>
计算<test>后应该得到一个布尔值,再根据这个值来确定结果
例如:
string sResult = (myInt<10) ? "less then 10" : "greater then or equal to 10";
if 语句
语法:
if(<test>)
<code executed if <test> is true>
else
<code executed if <test> is false>
if语句可以嵌套
switch 语句
语法:
switch(<testVar>)
{
case <comparisonVal1>:
<code executed if <testVar> == <comparisonVal1>>
break;
....
case <comparisonValN>:
<code executed if <testVar> == <comparisonValN>>
break;
default:
<code executed if <testVar> != <comparisonVals>>
break;
}
注意:C#与C++不同,不可以在运行完一个case语句后,运行另一个case语句
用break或return都可以防止这种情况,也可以用goto
例如:
switch(<testVar>)
{
case <comparisonVal1>:
<code executed if <testVar> == <comparisonVal1>>
goto case <comparisonVal2>;
case <comparisonVal2>:
<code executed if <testVar> == <comparisonVal2>>
break;
....
堆叠多个case语句
一次检查多个条件,满足其中一个就会执行代码
例如:
switch(<testVar>)
{
case <comparisonVal1>:
case <comparisonVal2>:
<code executed if <testVar> == <comparisonVal1> or <testVar> == <comparisonVal2>>
break;
....
comparisonValX的值必须是一个常量或字面值
循环
循环就是重复执行一些语句
do 循环
语法:
do
{
<code to be loop>
} while(<test>);
while 循环
语法:
while(<test>)
{
<code to be loop>
}
for 循环
语法:
for(<initialization>;<condition>;<operation>)
{
<code to be loop>
}
循环的中断
命令 说明
break 立即终止循环
continue 立即终止当前循环(继续下一次循环)
goto 可跳出循环到指定标签
return 跳出循环及其包含函数
无限循环
while(true)
{
<code to be loop>
}
有时可能会用到无限循环,用除"continue"外的中断命令跳出循环
程序流程就是C#代码行的执行顺序
两种方法控制流程:
1 分支:有条件地执行代码
2 循环:重复执行相同的语句
布尔逻辑
bool类型有两个值:true或false
比较运算符(关系运算符)
运算符 类别 范例
== 二元 var1=var2==var3;
!= 二元 var1=var2!=var3;
< 二元 var1=var2<var3;
> 二元 var1=var2>var3;
<= 二元 var1=var2<=var3;
>= 二元 var1=var2>=var3;
注:var1是bool变量,var2和var3可以是各种类型
布尔运算符
用于布尔值
运算符 类别 范例 说明
! 一元 var1=!var2; 逻辑非
^ 二元 var1=var2^var3; 逻辑异或(有且仅有一个是true)
& 二元 var1=var2&var3; 逻辑与
| 二元 var1=var2|var3; 逻辑或
&& 二元 var1=var2&&var3; 逻辑与
|| 二元 var1=var2||var3; 逻辑或
注:"&&"和"||"的效率比"&"和"|"高,因为前者当第一个操作数就确定结果的话就不再考虑第二个操作数,而后者总是要计算
位运算符
位运算符实际上处理的是储存在变量中的一系列位,而不是变量的值
&运算符
操作数1的位 操作数2的位 &结果的位
1 1 1
1 0 0
0 1 0
0 0 0
|运算符
操作数1的位 操作数2的位 |结果的位
1 1 1
1 0 1
0 1 1
0 0 0
^运算符
操作数1 操作数2 ^结果的位
1 1 0
1 0 1
0 1 1
0 0 0
~运算符(一元运算符,取反)
操作数的位 ~结果的位
1 0
0 1
<<和>>位移运算符
运算符 类别 范例 说明
>> 二元 var1=var2>>var3; var1等于var2二进制值右移var3位的值
<< 二元 var1=var2<<var3; var1等于var2二进制值左移var3位的值
布尔赋值运算符
运算符 类别 范例 说明
&= 二元 var1&=var2; var1等于var2&var3
|= 二元 var1|=var2; var1等于var2|var3
^= 二元 var1^=var2; var1等于var2^var3
>>= 一元 var1>>=var2; var1等于var1二进制值右移var2位的值
<<= 一元 var1<<=var2; var1等于var1二进制值左移var2位的值
运算符的优先级
优先级由高到低
++ -- (前缀) + - (一元) () ! ~
* / %
+ -
<< >>
< > <= >=
== !=
&
^
|
&&
||
= += -= *= /= %= <<= >>= &= ^= |=
++ -- (后缀)
goto语句
c#允许给代码行加上标签,可以使用goto语句跳转到标签(建议不使用)
优点:方式简单
缺点:过多地使用将使代码很难读懂
例如:
int myInteger = 17;
goto myLabel;
myInteger++;
myLabel://标签
Console.WriteLine("{0}", myInteger);
将跳过myInteger++;直接显示17
分支
分支是控制下一步要执行哪些代码的过程
分支技术:三元运算符、if语句、switch语句
三元运算符
语法:
<test> ? <resultIfTrue> : <resultIfFalse>
计算<test>后应该得到一个布尔值,再根据这个值来确定结果
例如:
string sResult = (myInt<10) ? "less then 10" : "greater then or equal to 10";
if 语句
语法:
if(<test>)
<code executed if <test> is true>
else
<code executed if <test> is false>
if语句可以嵌套
switch 语句
语法:
switch(<testVar>)
{
case <comparisonVal1>:
<code executed if <testVar> == <comparisonVal1>>
break;
....
case <comparisonValN>:
<code executed if <testVar> == <comparisonValN>>
break;
default:
<code executed if <testVar> != <comparisonVals>>
break;
}
注意:C#与C++不同,不可以在运行完一个case语句后,运行另一个case语句
用break或return都可以防止这种情况,也可以用goto
例如:
switch(<testVar>)
{
case <comparisonVal1>:
<code executed if <testVar> == <comparisonVal1>>
goto case <comparisonVal2>;
case <comparisonVal2>:
<code executed if <testVar> == <comparisonVal2>>
break;
....
堆叠多个case语句
一次检查多个条件,满足其中一个就会执行代码
例如:
switch(<testVar>)
{
case <comparisonVal1>:
case <comparisonVal2>:
<code executed if <testVar> == <comparisonVal1> or <testVar> == <comparisonVal2>>
break;
....
comparisonValX的值必须是一个常量或字面值
循环
循环就是重复执行一些语句
do 循环
语法:
do
{
<code to be loop>
} while(<test>);
while 循环
语法:
while(<test>)
{
<code to be loop>
}
for 循环
语法:
for(<initialization>;<condition>;<operation>)
{
<code to be loop>
}
循环的中断
命令 说明
break 立即终止循环
continue 立即终止当前循环(继续下一次循环)
goto 可跳出循环到指定标签
return 跳出循环及其包含函数
无限循环
while(true)
{
<code to be loop>
}
有时可能会用到无限循环,用除"continue"外的中断命令跳出循环
相关文章推荐
- C#入门经典学习4-流程控制
- <C#入门经典>学习笔记2之控制流程
- 《Shell脚本学习指南》学习笔记之变量、判断和流程控制
- 《Thinking in Java》学习笔记——第三章:控制程序流程
- 「学习笔记——Python」Python流程控制
- 《C#入门经典(第6版)》读书笔记4_第四章:流程控制
- 《java编程思想》学习笔记—控制执行流程
- 《Java编程思想》学习笔记(第四章): 流程控制语句
- 《21天学会C++》学习笔记第7章控制程序流程
- C#入门经典第四章-流程控制-1
- shell入门之流程控制语句 分类: 学习笔记 linux ubuntu 2015-07-10 16:38 89人阅读 评论(0) 收藏
- 《JAVA编程思想》学习笔记——第四章 控制执行流程
- 《Java面向对象编程》学习笔记5——流程控制
- 《Javascript权威指南》学习笔记之四流程控制
- jBPM一(概念及管理控制流程)
- Linux Vim和Shell脚本及流程控制常用命令
- Java流程控制(流程、循环和结束循环)
- C#体验流程控制(一)
- C语言流程控制
- 【Oracle】PL/SQL——基本语法,记录类型和控制流程