C++问题,while(i-->0) 什么意思

来自:5G    更新日期:早些时候
在c++中while(!i)是什么意思?~

如果i为零,则!i为非零;如果i不为零,则!i为零。while表达式当()内为非零值时成立,也就是说while在i为零时循环。

这个意思是说只要i不是0,就一直循环下去。你在while(--i)里面减1,然后又在循环体内减一,i--,所以循环一次就减了2,你的i=8,所以最后是4

while(i-->0)  表示当i大于0时循环,然后i进行自减

后缀--表示先使用变量,再进行变量自减

(i-->0) 就是先判断i是否大于0,然后i再自减:i=i-1

代码分析:

第一次:

int i=5, s=0;
while(i-->0)  //i初值为5,先判断5>0是否为真,然后i=i-1=4
{
    //第一次进到循环中,i就是4
     if (i%2)  //判断i是否为奇数,第一次,i=4不是,走else
        s+=i; 
     else 
        s+=i--; //此句相当于,s=s+i=0+4=4; i=i-1=3;
}

第二次:

while(i-->0)  //i值为3,先判断3>0是否为真,然后i=i-1=2
{
    //进到循环中,i就是2
     if (i%2)  //判断i是否为奇数,i=2不是,走else
        s+=i; 
     else 
        s+=i--; //此句相当于,s=s+i=4+2=6; i=i-1=1;
}

第三次:

while(i-->0)  //i值为1,先判断1>0是否为真,然后i=i-1=0
{
    //进到循环中,i就是0
     if (i%2)  //判断i是否为奇数,i=0不是,走else
        s+=i; 
     else 
        s+=i--; //此句相当于,s=s+i=6+0=6; i=i-1=-1;
}

第四次:

while(i-->0)  //i值为-1,先判断-1>0是否为真(不为真,结束循环),然后i=i-1=-2

所以,最终s=6  i=-2



判断i是否为零,然后自减……
比如,当i=5时,由于5不等于0,所以,条件成立,进入循环,此时i=4;
依次进行循环,直到i=0,此时条件不成立,退出循环体,此时i又自减依次,因此i的值为-1

是i--。先使用i的值,判断i是否>0。判断之后,马上使i的值自减1.


C++问题,while(i-->0) 什么意思视频

相关评论:
  • 18754147983while(i--)当i是几时输出
    姬贷耐该代码i的值为0时输出。在C语言中,while(i--)是一个循环语句,它将重复执行循环体中的代码,直到i的值为0。因此,要输出while(i--)当i是几时输出,需要将i的值设置为一个正整数,然后在循环体内输出i的值。假设i的初始值为5,每次循环i的值减少1,直到i的值为0时循环结束。在循环体内...

  • 18754147983while(1) 什么意思 while(i--)什么意思?
    姬贷耐while(1)其中1代表一个常量表达式,while(1) 表示无限循环,除非你设置break等类似的跳出循环语句循环才会中止 while(i--)其中i是一个变量,因此表达式i--有不同的值,依次递减,i--是先取值后减,--i先加后取值,所以i--的值同未执行该自减运算时的i相等。

  • 18754147983在C语言中while(i-->0);表示什么意思
    姬贷耐while(i-->0)表示当 i 的值小于或等于0时,退出while循环。具体执行过程如下:先将i的值与0比较,如果i大于0,则i的值减1,并执行while循环体中的语句,如果i小于0,则i的值减1,但是不执行while循环体中的语句。例子程序及解释如下:int i=3;while(i-->0){ printf("a");}对于上面的...

  • 18754147983while(i--)判断条件为0时结束循环,结果为多少?
    姬贷耐程序输出的结果是-1。while判断条件为0时结束循环,当i一直减到0时,while(i--)判断条件为0,循环结束。但是在判断过程中i又自减一次变成-1,所以输出i为-1。while循环开始后,先判断条件是否满足,如果满足就执行循环体内的语句,执行完毕后再回来判断条件是否满足,如此无限重复;直到条件不满足时...

  • 18754147983...那么下面程序执完第一个”while(i--);”应该终止了啊。
    姬贷耐第一个while(1),这是一个无条件循环,因为条件永远为真,即永远循环下去,就是无条件循环了,这是单片机主程序必须的主循环结构。而循环执行的程序是下面{ }内的所有程序。这个程序的主循环有3条语句,i=2000;是给i赋初值,led1=1;是点亮发光二极管,而while(i--);是一个小循环语句,用来延时...

  • 18754147983...#include "stdio.h" main() { int i=6; while(i--) printf("%d...
    姬贷耐while里面的内容是假的时侯,程序就停止循环,C语言中非零即真,故当i自减到零时停止循环。输出420.手机打字很慢,望采纳。

  • 18754147983在c语言中int i=10; while(i-->0) ; printf("%d",i);结果是?,为什么...
    姬贷耐首先,--优先等级比>高,而且i--是先用再运行的,当i=0的时候,虽然while语句满足了终止条件,但i会先进行i>0的比较,然后再会进行自减变成-1,最后再进行输出的,所以结果是-1

  • 18754147983这个程序里,void delay(u16 i){while(i--)},i和i--代表什么?
    姬贷耐i 是参数,是前面已经声明的 无符号 16位 整型数。在 C 语言中,i-- 表示变量 i 递减 1 操作。这个自定义的 delay(i) 子程序就是把输入的数值 一直循环减到 0 为止。目的就是“消耗”系统时间,达到延时目的。

  • 18754147983c语言中while循环有什么讲解吗?
    姬贷耐语句1;语句2;语句n;} 讲解:1 while(1)是无限循环花括号里面的语句。比如:while(1){ a=b;c=d;} 这样语句a=b; c=d;,从上到下执行完后,然后又回到起始点,再从上到下执行,如此无限循环。2 while(i--)。假设i=50,每执行完花括号里面一次,i就减1,这个就是符号“--”的原理,...

  • 18754147983在c语言中int i=1; while(i--) ; printf("%d",i);结果是?
    姬贷耐int i=1;while(i--) ; \/\/如果这里有分号 {printf("%d",i);} \/\/这里缺少分号就不能运行 printf("%d",i);把程序中的中文标点,改为英文标点后,运行后会输出:-1-1

  • 相关主题精彩

    版权声明:本网站为非赢利性站点,内容来自于网络投稿和网络,若有相关事宜,请联系管理员

    Copyright © 喜物网