C语言 while语句的用法详解

在C语言中,共有三大常用的程序结构:

顺序结构:代码从前往后执行,没有任何“拐弯抹角”;

选择结构:也叫分支结构,重点要掌握 if else、switch 以及条件运算符;

循环结构:重复执行同一段代码。

前面讲解了顺序结构和选择结构,本节开始讲解循环结构。所谓循环(Loop),就是重复地执行同一段代码,例如要计算 1+2+3+……+99+100 的值,就要重复进行99次加法运算。

while循环

while循环的一般形式为:
    while(表达式){
        语句块
    }

其中表达式称为循环条件,语句块称为循环体。

while语句的意思是:先计算表达式的值,当值为真(非0)时, 执行循环体语句;执行完循环体语句,再次计算表达式的值,如果为真,继续执行循环体……这个过程会一直重复,直到表达式的值为假(0),就退出循环,执行后面的语句。其执行过程如下图所示:

用while语句计算1加到100的值:

#include <stdio.h>
int main(void){
  int i=1, sum=0;
  while(i<=100){
    sum+=i;
    i++;
  }
  printf("%d\n",sum);
  return 0;
}

运行结果:

5050

代码分析:

1) 程序运行到while语句时,因为 i=1,i<=100 的值为真,所以执行循环体;执行结束后 i 的值变为 2,sum 的值变为 1。

2) 接下来会继续判断 i<=100是否成立,因为此时 i=2,i<=100 成立,所以继续执行循环体;执行结束后 i 的值变为 3,sum 的值变为3。

3) 重复执行步骤 2)。

4) 当循环进行到第100次,i 的值变为 101,sum 的值变为5050;因为此时 i<=100 不再成立,所以就退出循环,不再执行循环体,转而执行while循环后面的代码。

再看一个例子,统计从键盘输入的一行字符的个数:

#include <stdio.h>
int main(){
  int n=0;
  printf("Input a string:");
  while(getchar()!='\n') n++;
  printf("Number of characters: %d\n", n);
  return 0;
}

运行结果:

Input a string:c.biancheng.net
Number of characters: 15

本例程序中的循环条件为getchar()!='\n',其意义是,只要从键盘输入的字符不是回车就继续循环。循环体n++;完成对输入字符个数计数。

do-while循环

除了while循环,在C语言中还有一种 do-while 循环。

do-while循环的一般形式为:

do{
    语句块
}while(表达式);

do-while循环与while循环的不同在于:它会先执行循环体,然后再判断表达式是否为真,如果为真则继续循环;如果为假,则终止循环。因此,do-while 循环至少要执行一次循环体。其执行过程可用下图表示:

用do-while计算1加到100的值:

#include <stdio.h>
int main(){
  int i=1, sum=0;
  do{
    sum+=i;
    i++;
  }while(i<=100);
  printf("%d\n", sum);
  return 0;
}

运行结果:

5050

注意while(i<=100);最后的分号;,这个必须要有。

while循环和do-while各有特点,大家可以适当选择,实际编程中使用while循环较多。

以上就是对 C语言while 语句用法的详细介绍,有需要的同学可以参考下。

(0)

相关推荐

  • c++中do{...}while(0)的意义和用法

    linux内核和其他一些开源的代码中,经常会遇到这样的代码: do{  ... }while(0) 这样的代码一看就不是一个循环,do..while表面上在这里一点意义都没有,那么为什么要这么用呢? 实际上,do{...}while(0)的作用远大于美化你的代码.查了些资料,总结起来这样写主要有以下几点好处: 1.辅助定义复杂的宏,避免引用的时候出错: 举例来说,假设你需要定义这样一个宏: 复制代码 代码如下: #define DOSOMETHING()\                foo1

  • javascript while语句和do while语句的区别分析

    while语句: 复制代码 代码如下: var i = 1;  while(i<10)  {      document.write(i);      i++;  } do while语句:  复制代码 代码如下: var i = 1;  do  {      document.write(i);      i++; }while(i<10); 从上边例子中我们来分析它们的两点不同: 1.因为while语句总是先检测循环表达式,所以它的循环体可能一次都不执行:而do/while语句是在循环底部

  • javascript 循环语句 while、do-while、for-in、for用法区别

    前两个唯一的差别就是循环和判断的顺序不同,do-while比while多循环一次,我就不举例了. for循环相信大家也熟的不能再熟了,我们就看for-in这一句. 这个其实是针对数组的,js中数组的初始化也挺奇特的比如我们在script结点里写:(另外注意下数组的初始化,用的是中括号) "); var a=[3,4,5,7]; for(var test in a){ document.write(test+": "+a[test]+""); } -->

  • JavaScript While 循环 教程

    JavaScript中的循环用来将同一段代码执行指定的次数(或者当指定的条件为true时). JavaScript Switch 声明 如果希望选择执行若干代码块中的一个,你可以使用switch声明: 语法: 复制代码 代码如下: switch(n)     {     case 1:       执行代码块 1       break     case 2:       执行代码块 2       break     default:       如果n即不是1也不是2,则执行此代码     

  • 详解JavaScript的while循环的使用

    在写一个程序时,可能有一种情况,当你需要一遍又一遍的执行一些操作.在这样的情况下,则需要写循环语句,以减少代码的数量. JavaScript支持所有必要的循环,以帮助您在所有编程的步骤.  while 循环 在JavaScript中最基本的循环是while循环,这将在本教程中学习讨论. 语法 while (expression){ Statement(s) to be executed if expression is true } while循环的目的是为了反复执行语句或代码块(只要表达式为t

  • perl控制流介绍(if条件,while,for循环,foreach)

    1. 语句块:{ }之间的部分即为BLOCK语句块. 2. 条件语句:if ( expression )  BLOCK; if ( expression )     BLOCK1else BLOCK2; if ( expression1 )     BLOCK1;elsif ( expression2 )    BLOCK2;else    BLOCK3; #倒置的if语句expression if ( test_expression ); 涉及到的关系运算符:数字值比较:==, >, <,

  • C++中的while循环和for循环语句学习教程

    C++ while循环 while语句的一般形式如下: while (表达式) 语句 其作用是: 当指定的条件为真(表达式为非0)时,执行while语句中的内嵌语句.其流程图见下图. 其特点是:先判断表达式,后执行语句.while循环称为当型循环. 例:求1+2+3+-+100. #include <iostream> using namespace std; int main( ) { int i=1,sum=0; while (i<=100) { sum=sum+i; i++; }

  • 讲解C++的do while循环和循环语句的嵌套使用方法

    用do-while语句构成循环 do-while语句的特点是先执行循环体,然后判断循环条件是否成立.其一般形式为: do 语句 while (表达式); 它是这样执行的:先执行一次指定的语句(即循环体),然后判别表达式,当表达式的值为非零("真") 时,返回重新执行循环体语句,如此反复,直到表达式的值等于0为止,此时循环结束.可以用下图表示其流程. [例]用do-while语句求1+2+3+-+100. #include <iostream> using namespace

  • C语言中while与do-while的介绍与注意事项

    一.while和do-while的简介  1). while语句  语法: while(表达式){ 循环体; } 循环过程: 1.先判断表达式,是否为真,如果为真跳转到2,否则跳转到3 2.执行循环体,执行完毕,跳转到1 3.跳出循环 2). do-while语句 语法: do{ 循环体; }while(表达式);  注意:这个while后面的小括号必须接; 循环过程: 1.先执行循环体,执行完毕跳转到2 2.判断表达式的结果是否为真,如果为真,跳转到1,否则跳转到3 3.跳出循环 3). do

  • PHP循环遍历数组的3种方法list()、each()和while总结

    ①each()函数 each()函数需要传递一个数组作为参数,返回数组中当前元素的键/值对,并向后移动数组指针到下一个元素的位置.键/值对被返回带有4个元素的关联和索引混合的数组,键名分别为0.1.key和value.其中键名0和key对应的值是一样的,是数组元素的键名,1和value则包含有数组元素的值.如果内部指针越过了数组的末端,则each()返回FALSE.each()函数的使用如下所示: 复制代码 代码如下: <?php $contact = array("ID" =&

随机推荐