为什么我for循环后i还是为零?

#include<iostream>

using namespace std;

int main()

{

int a[100];

int i,j;

for(i=0;i<100;i++)

{

cin>>a[i];

if('\r')

break;

}

cout<<i<<endl;

for(j=0;j<=i;j++)

cout<<a[j]<<endl;

return 0;

}

//就是运行结果显示 i=0,不懂啊为什么它不变啊



慕粉4323149
浏览 1600回答 3
3回答

风沙流年

循环里面的if语句是要做什么的?如果你是想表达如果输入了回车,应该写成一个判断表达式a[i]=='\r',仅仅是一个字符的话,if判断为真,直接退出循环,那么i当然为0。

onemoo

if后面的括号中是判断条件,为true则执行if中的语句(在这里是break;)。但是你在if括号中写的是一个字符字面量'\r',它会被判断为true(字符算是整型,而非零整型就被认为是true),所以当你进入循环后(i被赋值为0),然后进入循环体,执行到if语句后由于被判断为true,所以直接执行break;退出了for循环。 所以最终 i 还是0.
打开App,查看更多内容
随时随地看视频慕课网APP