C语言里X-=1是什么意思?

Python0130

C语言里X-=1是什么意思?,第1张

-=是一个赋值运算符,x-=1的意思是x=x-1,

类似的还有+=,*=,/=,《=,》=,—=……=,|=

这些赋值运算符的用法都是一样的,如x-=1的意思是x=x-1

首先了解下优先级与结合性

1.--为自减运算符,第二优先级,自右至左

2.x--这个表达式:先使用x的值,接着x=x-1

整个表达式的值为x

while(x--)

{

循环体

}

首先

①判断x--这个表达式的值是否为0(即x的值),如果为0,不执行循环体

但仍然执行x=x-1

例如:

int x=0则不执行循环体,x最终值为-1

②如果x的初值不为0,判断x--这个表达式的值是否为0,(不论是否为0)x=x-1,

如果x--表达式的值不为0,在执行循环体.(真绕...看例子)

例如:

int x=3

while(x--)

{

printf("while\n")

}

printf("%d\n",x)

①3-->不为0-->x=x-1-->x=2

执行循环体 while

②2-->不为0-->x=x-1-->x=1

同上

③1-->不为0-->x=x-1-->x=0

同上

④注意 此时x=0,将不再执行循环体,但x=x-1-->x=-1

(建议你逐步调试,很清晰)

如果x

!=

0,

!x

0,即假,如果x

==

0,则

!x

真。

while循环和

do-while

循环的区别在于,while是先检查是否复合条件再循环,而do-while循环则是在循环体尾检查是否符合条件,这就说明,do-while循环内的语句至少被执行一次。

这好比下面的例子

do{

吃一个三明治

←←←←←

Statement

我饿吗?(饿,再吃一个三明治↑)(不饿,退出循环↓)

}while()

←←←←←←←←←

这就意味着,你至少得吃一个三明治。

如果使用while循环,则像下面这样

我饿吗?(饿,吃↓)(不饿↓)

while()

{

吃一个三明治

statement}

这说明,你不一定吃一个三明治。

这就是while跟do-while的区别。。。=、=