c++ break 的疑问

来源:百度知道 编辑:UC知道 时间:2024/06/15 08:53:13
为什么这个程序最后答案是0?
#include <iostream>
using namespace std;

int main()
{
size_t n=0;
int ival;
int ivec[100];
while (true) {
cin >> ival;
if (ival = -1)
break;
n++;
ivec[n]=ival;
}
cout << n;
return 0;
}

ival = -1

这里要用==

ival == -1

if (ival = -1)
=================
if (ival == -1)

if (ival = -1)break;
//if(val) val:非零即为真,ival=-1 为赋值表达式,这里 val的值取ival的值,因此在第一次进入while循环时就判断为真,接着break;跳出while循环了.没执行下边的
n++;
……