5.布尔型操作符
1.赋值 =
2.等于 == !=
3.逻辑 ! && || ^ & |
INT TENS = (9 * 6) / 13;
INT UNITS = (9 * 6) % 13;
BOOL ISFOUR = TENS == 4;
BOOL ISTWO = UNITS == 2;
BOOL HHG;
HHG = ISFOUR & ISTWO;
HHG = !(ISFOUR & ISTWO);
HHG = !ISFOUR | !ISTWO;
HHG = !HHG;
&&的结果是只有当操作符两边的操作数都是TRUE时才是TRUE。如果&&左边的操作数是FALSE的话,那么不管右边的操作数是FALSE还是TRUE,整个&&表达式的值为FALSE。
||的结果是当操作符两边的操作数只要一个是TRUE的时分就是TRUE。如果&&左边的操作数是TRUE的话,那么不管右边的操作数是FALSE还是TRUE,整个&&表达式的值为TRUE。
!表示取反的意思。
有一种称为“短路”的技术非常有用。例如,左边的表达式能够判断一个值是否为0,然后右边的表达式能够把这个值作为除数。例如:
IF ((X != 0) && (Y / X > TOLERANCE)) ...
6.IF语句
STRING DAYSUFFIX(INT DAYS)
{
STRING RESULT;
IF (DAYS / 10 == 1)
RESULT = "TH";
ELSE IF (DAYS % 10 == 1)
RESULT = "ST";
ELSE IF (DAYS % 10 == 2)
RESULT = "ND";
ELSE IF (DAYS % 10 == 3)
RESULT = "RD";
ELSE
RESULT = "TH";
RETURN RESULT;
}
IF语句的条件表达式必须是纯粹的BOOL型表达式。例如下面的诗句是错误的:
IF (CURRENTVALUE = 0) ...
C#要求所有的变量必须预先明确赋值后才能使用,因此,下列的程序是错误的:
INT M;
IF (INRANGE)
M = 42;
INT COPY = M; //错误,因为M能够不会被赋初值。
在C#中,IF语句中不能包含变量声明语句,例如:
IF (INRANGE)
INT USELESS;// 错误
7.SWITCH语句
· 语法
W 用于整数类类型
W CASE后的标志必须是编译时为常数
W 没有表示范围的缩略形式
STRING DAYSUFFIX(INT DAYS)
{
STRING RESULT = "TH";
IF (DAYS / 10 != 1)
SWITCH (DAYS % 10)
{
CASE 1 :
RESULT = "ST"; BREAK;
CASE 2 :
RESULT = "ND"; BREAK;
CASE 3 :
RESULT = "RD"; BREAK;
DEFAULT: //表示不契合上面条件的情况
RESULT = "TH"; BREAK;
}
RETURN RESULT;
}
你只能对整型、字符串或能够隐式转换为整型或字符串的用户自定义类型使用SWITCH语句。CASE标志必须在编译时是常数。
C#中没有VISUAL BASIC中的IS关键字在CASE中停止比拟,例如:
SWITCH (EXPRESSION())
{
CASE IS < 42 : //错误
CASE METHOD() : //错误
}
C#中没有范围比拟符。
SWITCH (EXPRESSION())
{
CASE 16 TO 21 : //错误
CASE 16..21 : //错误
}
注意:每个CASE段必须包括BREAK语句,DEFAULT语句也不例外。
8.WHILE/DO
INT DIGIT = 0;
WHILE (DIGIT != 10
{
CONSOLE.WRITE(" ", DIGIT);
DIGIT++;
}//没有分号
INT DIGIT = 0;
DO
{
CONSOLE.WRITE(" ", DIGIT);
DIGIT++;
}
WHILE (DIGIT != 10);//有分号