c++之说_7|循环语句

循环语句有 三种

for 循环 

while 循环

do while 循环 

循环语句  都有一个符合循环的条件 

这个是条件  是 bool 类型  (布尔类型)

就是 只有 true  false 两种情况  只有条件为 true 的时候 才会执行循环语句块

我们先看看里面最简单的 while 循环

语法规则  

while(  条件  )  此处结果只要是 true 或者false  

{

此处为执行的循环语句块

}

int a = 8;

while (  a > 0 ) 这个运算符结果为 true (真)

{

   // a++; 这里的意思是 a 自加一 等价 a = a + 1

    a--; 这里就是 a自减一了  等价 a = a - 1

}

以上就是简单的用法  

注意 // 是注释符  在该行中//后 一切写法都是注释

以上语句的运行流程

先判断了 a > 0 条件成立  就开始运行循环语句块 

a--; 指令后  此时 a = 7  然后回到  while 处 继续判断 条件是否成立  周而复始  直到 while 处 判断的条件不成立 不再允行循环语句块  

以上 运行了循环语句块  8  次后   a = 0 时

while 处的条件 不再成立 运算符结果为 false 就不会再运行 该循环语句块了  程序往下继续运行

现在说说  do  while 语句  

这个是一整个语句块  是一体的

语法规则

do

{

  循环语句块

}

while( 条件 );

这个语句  和 while 语句  基本就只有一个执行流

的改变

就是  它会先运行一次 循环语句块后  再去判断while 处的条件  就算第一次 的条件都不成立 

也是可以运行一次循环语句块的 

int a = 0;

do

{

  a--;

}

while(  a >  0 );

这个语句的运行结果

a = -1;

这个就是条件不成立  也会运行一次循环语句

好了  接下来  我们说说 程序中最常用的循环语句

for 循环 

这个和 前两个有点不太一样  不过循环规则是一样的

语法规则

for(    初始化区域   ;  条件区域 

; 每次循环后执行区域 ) 

{

循环语句块

}

有点不一样吧  它 for 上面都有三个区域了

for(  int a = 0 ; a < 8 ; a++  )

{  

int  b = a + 8;

}

上述  我们在for的初始化区域  定义了一个 int 型 

a 变量 且  初始化为  0    条件区域  条件是  a<8

尾置区 是 a++  这样咱们就不会死循环了  因为保障了 条件循环到一定次数后  条件会为 false

注意  我们一定要注意 这个在初始化区域 定义的 int a 变量 是一个 for 语句块里 的局部变量

这个变量只能在for 语句里面 合法使用 语句外部无法访问使用

for(  int a = 0 ; a < 8 ; a++  )

 

{  

 

int  b = a + 8;

 

}

a = 9; //error    非法变量使用  编译器会报 未定义该变量  反正在外部你也用不了

值得注意的也就这点了  

还有一个 for 循环语句的变种  他们叫 for 一起  单词忘了 

语法规则

int b[8] = { 10 };//数组定义规则 用10 初始化了 每一个元素

for( int a : b )

{

  int c = a;

}

这个语句是不是感觉有点不太一样 

怎么没有循环条件呢?

其实循环条件 更  b 这个数组变量有关

首先  它这个是 每次循环时 都定义一个 int a 

去拿 b 数组变量里的其中一个元素

是按照顺序去依次拿的

比如

第一次  拿  int a  =  b[0];

第二次  拿 int  a  =  b[1];

周而复始  直到 b数组里面的元素 拿完  无法再拿

循环结束

这个语句 当我们要拿动态数组的元素时  很有用

OK  现在 再说一个  与循环语句经常形影不离的 

两个关键字 

break (层跳出) 

continue(次跳出)

次跳出是我自己定义的 感觉形象点

这两个干嘛的呢  主要就是控制循环语句 执行流程的

int a = 0;

while( true )

{

   if( a >8 )

          break;

    else

         a++;

}

以上  

while 一眼上去  看条件 true  写死了  是个死循环  

但是我们 

在 if 语句 判断了  a > 8 时   执行break;

层跳出  顾名思义  就是  跳出这层 

这个层是什么  就是  这个循环语句 

程序只要执行到  break  直接跳出此层循环 

不会再执行 这个循环语句了  就当这个循环语句已经完成了 循环条件已经为 false 了

continue 次跳出

如  

int a = 0;

while( true )

{

   if( a > 8 )

         {

            continue;

            a  = 0;

          }

    else

         a++;

}

以上

也是跳循环  但是跳法不同

这个程序执行到 continue;时 会直接进入下一次循环 跳掉本次循环  

是的  这个循环是 实实在在的死循环了

注意   continue;指令 下面的  a = 0; 并没有得到执行 

程序遇到这两个关键字  break  continue

就不会执行 以下的语句  直接跳循环  所以通常我们是在  需要跳循环的执行尾部使用

continue  次跳出   的意思大家应该知道了  单次跳出

但 break  层跳出  大家可能不太理解   给个案例

int a = 0;

for(   ; a < 8  ; )

     for( int i = 0;i < 8  ; i++ )

       {

           if(  i == 2)

                break;

        }

以上

一眼上去是不是有点迷惑了 

怎么第一个for 初始化区域  尾置区 没写呢  还有大括号呢?

这个两个区域是允许留空的 至于大括号

在没有大括号时  会运行下一条语句  这个if 一样的规则

在这两个循环中  我们在嵌套的 for 循环里面 写了 

if( i == 2)  break;  == 号  是等于的意思 

程序里的 相等号  并不和数学里的相等号一样   

==  相等号   = 赋值号

当  i 等于2时 执行 break  跳出本层循环

就是 它会  跳出 for( int i = 0;i < 8  ; i++ ) 这个语句  开始执行外部循环  for(   ; a < 8  ; ) 下一次循环条件判断 成立后 去执行  for( int i = 0;i < 8  ; i++ )的循环  

这个的外层循环  是个死循环  因为条件无法 达到flase   a变量  永远是 零

好了  终于结束了  

要记清楚

break (层跳出) 

continue(次跳出)  

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值