Skip to main content

控制语句

小结

C语言流程控制语句(共8条),分别实现分支结构、循环结构和控制转移。

  1. if语句用于实现单路、双路和多路分支。switch语句可以比嵌套的if语句更实现多路分支。for语句常用于循环次数能确定的计数循环结构。while语句和do...while语句常用于循环次数不确定,由执行过程中条件变化控制循环次数。while语句和do...while语句不同之处是:while语句先判断条件,后执行循环体,而do...while语句先执行循环体后判断条件。

  2. break语句使控制跳出switch结构或循环结构。continue语句只能用于循环结构,立即转去执行下一次循环。两者相同点是需要条件进行跳转,不同点是:break语句强制立即结束,而continue语句只能立即结束本次循环而开始判定下一次循环是否进行。goto语句使控制转向指定语句继续执行。goto语句应该有限制地使用,多用于直接退出深层循环嵌套。


习题

  1. 编写一个程序,计算:

    result={1+2++i(i5)100i(i1)1(5<i10)i×i(i>10)result = \begin{cases} 1 + 2 + \cdots + i & (i \leq 5) \\ 100 - i - (i-1) - \cdots - 1 & (5 < i \leq 10) \\ i \times i & (i > 10) \end{cases}
  2. 编写一个程序,计算:

    ex=1+x+x22!+x33!++xnn!e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \cdots + \frac{x^n}{n!}
  3. 编写一个程序,当输入一个整数时,用英语单词输出该数的每一位数字。例如:输入 3567,输出:

    first_digit  second_digit  third_digit  fourth_digit
    seven six five three
  4. 编写一个程序,求两个正整数 xxyy 的最小公倍数。

  5. 编写一个程序,输入两个整数 i,ji, j,如果 jj 的值大于 00,则将 ii 循环左移 jj 位;如果 jj 的值小于 00,则将 ii 循环右移 jj 位,最后输出 ii 的值。

  6. 编写一个程序,输入两个整数 i,ji, j,显示 ii 的第 jj 个二进制位。

知识补充与扩展

一、switch 语句

switch 语句的一般形式为:

switch(表达式)
{
case 常量1: 语句1;
break;
case 常量2: 语句2;
break;
...
case 常量n: 语句n;
break;
default: 语句n+1;
}

恰当地使用 break 语句,可以控制一段程序的执行入口和出口点,例如:

switch(i)
{
case 1: 语句1;
case 2: 语句2;
break;
case 3: 语句3;
case 4: 语句4;
case 5: 语句5;
break;
default: 语句6;
}