C/C++ while循环语句问题
如while(1)是一个无限循环(用Bool值来说是true的意思)while(-1)也是一个无限循环所以意思是非0即为真true的意思么?还有个问题如下,inti,ci...
如while(1)是一个无限循环(用Bool值来说是true的意思)
while(-1)也是一个无限循环所以意思是非0即为真 true的意思么?
还有个问题如下,int i, cin >> i, 此时输入1 下面的 while( cin >> 1)不就是while(1)的意思么,可是结果为什么不是无限循环呢??是cin重载的问题么,
int main(){ int i; while (cin >> i )// i 输入1
cout << "OK" << endl; cout << "Break" << endl; cin.get(); return 0;}
-------------------------------------------------------------------------------------------------------------
改成下面这样又可以无限循环
int main(){ int i;
cin >> i; // i 输入1 while ( i )
cout << "OK" << endl; cout << "Break" << endl; cin.get(); return 0;} 展开
while(-1)也是一个无限循环所以意思是非0即为真 true的意思么?
还有个问题如下,int i, cin >> i, 此时输入1 下面的 while( cin >> 1)不就是while(1)的意思么,可是结果为什么不是无限循环呢??是cin重载的问题么,
int main(){ int i; while (cin >> i )// i 输入1
cout << "OK" << endl; cout << "Break" << endl; cin.get(); return 0;}
-------------------------------------------------------------------------------------------------------------
改成下面这样又可以无限循环
int main(){ int i;
cin >> i; // i 输入1 while ( i )
cout << "OK" << endl; cout << "Break" << endl; cin.get(); return 0;} 展开
3个回答
展开全部
cin >> i 返值类型不是int,而是istream类模版特化类。运行程序看返值类型
#include <iostream>
#include <cstdlib>
#include <typeinfo>
using namespace std;
int main()
{
int i;
cout<<typeid(cin>>i).name()<<endl;
system("PAUSE");
return 0;
}
在VC++6.0运行结果是:class std::basic_istream<char,struct std::char_traits<char> >
展开全部
主要是你把whlie(i)注释掉了,改到//号之前就好了。
代码如下:
#include<iostream>
using namespace std;
int main()
{
int i=0;
cin >> i;
while(i)// i 输入1 while ( i )
cout << "OK" << endl;
cout << "Break" << endl;
cin.get();
return 0;
}
代码如下:
#include<iostream>
using namespace std;
int main()
{
int i=0;
cin >> i;
while(i)// i 输入1 while ( i )
cout << "OK" << endl;
cout << "Break" << endl;
cin.get();
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
int a;
bool(a) == bool(a != 0);
class istream{
istream& operator>>(int) {
return *this;
};
operator bool(){
return !eof();
}
};
看代码你就懂了。。。
bool(a) == bool(a != 0);
class istream{
istream& operator>>(int) {
return *this;
};
operator bool(){
return !eof();
}
};
看代码你就懂了。。。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询