1. if语句
. if语句
if (x %2)
y += x / 2;
如果括号里的表达式为真,执行 y += x / 2;语句。
. if else语句
if (x % 2 == 0)
y += x / 2;
else
y += (x + 1) / 2;
如果if中的表达式为真则执行if后面的语句,否则执行else后面的语句。
. if else if语句
if (x % 2 == 0)
y += x / 2;
else if (x % 4 == 1)
y += 2 * ((x + 3) / 4);
else
y += (x + 1) / 2;
2. switch语句
switch (ch) {
case 'Y':
break;
case 'N':
break;
default:break;
}
如果匹配成功,将执行case后面的语句。如果case后面没有break语句,那么它将继续向下执行,直到整个语句结束或遇到break。有时,我们可以利用这点故意不写出break语句。例如:
switch (ch) {
case 'Y':
case 'y':
break;
}
default是可选的,可以写也可以不写。
3. while语句
while ( /* condition */)
/* loop body */
4. for语句
int factorial(int n)
{
int i, j = 1;
for (i = 1; i <= n; i++)
j *= i;
return j;
}
for语句包含三个部分:
初始化部分:i = 1
条件部分:i <= n
调整部分:i++
这三个部分每一个部分都是可选的,但是分号不能省略。
初始化部分只在循环开始开始时执行一次。
其实for语句可以和while语句互换的,例如前面的例子可以用while语句改写成:
int factorial(int n)
{
int j = 1;
int i = 1; /* initialzation */
while (i <= n) { /* condition */
j *= i;
i++; /* increment*/
}
return j;
}
对于for中的复合表达式,用逗号分割。
int factorial(int n) {
int i, j;
for (i = 1, j = 1; i <= n; j *= i, i++)
;
return j;
}
那到底选择for语句还是while语句,要根据实际情况而定,如果要做简单的初始化与增量处理,那最好还是选for语句,而且把循环控制部分放在顶部,也便于理解。
5. do while语句
同while不同的是,它要先执行一次循环体部分,然后再做条件判断。
6. break和continue关键字
break语句用于推出最内层循环或swith语句中的退出。
continue语句表示跳过循环体部分,直接调到循环的条件部分,执行下一次循环。