语句执行循环次数

来源:百度知道 编辑:UC知道 时间:2024/06/06 09:52:29
do{y++;} while(x=0,y=0,!x&&y<=5)语句执行循环几次
0,5,6,无数次.哪个才正确?

死循环,每次判断!x&&y<=5前,x=0,y=0,!x成立,y<=5也成立

无数次
do{}while循环条件是一个逗号表达式,从左往右执行,其结果是最后一个表达式的值,即(!x&&y<=5)的值
每次判断条件时,x和y都赋为0,!x为真,y<=5也为真,与后也是真,这样无限循环下去

#include "stdafx.h"
#include<iostream.h>

int main(int argc, char* argv[])
{
int i=0, x, y;
do
{
printf("%d \n", i++);
y++;
} while(x=0,y=0, !x && y<=5);
printf("Hello World!\n");
return 0;
}
程序运行表明这是一个死循环,一直跳不出

while里只能有一个表达式,不然怎么判断true or false

逗号运算符俺都忘~

#include <iostream.h>
void main()
{
int x=0,y=0,a=0;
do{y++;a++;}
while(!x&&y<=5);
cout<<a-1<<endl;//a-1即循环的次数
}

循环开始的时候,y的值不知道,但第一次可以执行。
但是经过表达式“x=0,y=0,!x&&y<=5”后,表达式值永远为1(即!x&&y<=5的值),所以循环继续执行,为死循环。