为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C++
慕粉4323149 2016-10-31 18:01:19
#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,不懂啊为什么它不变啊
查看完整描述

3 回答

?
风沙流年

TA贡献7条经验 获得超1个赞

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

查看完整回答
1 反对 回复 2016-10-31
?
onemoo

TA贡献883条经验 获得超454个赞

if后面的括号中是判断条件,为true则执行if中的语句(在这里是break;)。

但是你在if括号中写的是一个字符字面量'\r',它会被判断为true(字符算是整型,而非零整型就被认为是true),所以当你进入循环后(i被赋值为0),然后进入循环体,执行到if语句后由于被判断为true,所以直接执行break;退出了for循环。 所以最终 i 还是0.

查看完整回答
1 反对 回复 2016-10-31
  • 3 回答
  • 0 关注
  • 1599 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信