根据条件是否满足或根据表达式的值控制代码的执行分支
if(condition) {
statement;
} else {
satement
}
如果只有一条语句可以省略{},但建议放上
可以只有一个if而没有else
可以有多个else if,实现多条分支:
if(condition) {
...
}else if(condition) {
...
}else if(condition) {
...
}else {
...
}
else if语句的个数不受限制
if子句中的表达式必须是布尔值
2、switch语句
switch(表达式) {
case 常量1: ... break;
case 常量2: ... break;
case 常量3: ... break;
default: .. break;
}
case后面必须跟常量表达式,不能是变量。
case子句必须有break(和c/java不同)
有一种情况例外,多个case为空:
case "a":
case "b":
case "c": break;
case子句可以通过goto跳到另一个case,如:
case "a":
goto case "b";
case "b": break;
case "c": break;
case 子句的顺序无所谓
case 后面的常量值不能重复。
switch中测试表达式的值可以是整数,字符串,枚举,布尔,字符
3、for循环
for(初始化;循环条件;迭代) {
...
}
初始化在第一次循环前执行,只执行一次
循环条件:每次进入循环时都执行,用于判断是否进行循环。
迭代:一般用作计数器
一般可预测循环次数的用for循环
for循环可以嵌套,外层为外循环,内层为内循环。
4、while循环
while(循环条件) {
...
}
5、do ... while循环
do {
...
}while(循环条件);
与while相比,do..while至少执行一次循环。
6、foreach循环
可以迭代集合中的每一项
for( 变量 in 集合) {
...
}
foreach循环每次迭代一个元素。
foreach循环是只读的,您不能改变集合各项的值。如:
int[] arr = {1,2,3,4,5};
foreach(int i in arr) {
i++; //出错
}
7、跳转语句
goto语句可以跳到程序中用标签指定的那一行,,如:
goto POSITION;
...
POSITION: //定义标签:标识符后面加上冒号
...
goto不能从外跳到for循环中。
goto不能跳出类的范围
goto不能跳出try .. catch后面的finally块。
break语句可以用在switch中,循环中,用于退出switch或循环。
continue语句只能用于循环,他退出当前循环进行一下次迭代。
return语句用于退出方法,把控制权交给调用者。
8、枚举
枚举是用户定义的整数类型
声明时要指定枚举的实例可以包含的枚举值
枚举继承于System.Enum类
优势:
枚举可以使代码易于维护
枚举用名称表示整数值,代码清晰
定义:
public enum 枚举类型名 {
值1 = 0,
值2 = 1, 值3 =2
}
使用:
枚举.值;
枚举 变量 = 枚举.值;
枚举值转换为字符串:
枚举.值.ToString();
枚举变量.ToString();
字符串转换为枚举值:
枚举变量 = (枚举类型)Enum.Parse(typeof(枚举类型),"字符串",true)
第三个参数是:是否忽略大小写
例: