初学C++当遇到下面这种类型的输入时:
也就是说:不指定输入的个数,一直输入,直到满足某个条件停止输入!
常规解法:
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
while(true){
int x;
cin>>x;
if(x==0) break;
for(int i=1;i<=x;i++){
cout<<i<< ' ';
}
cout<<endl;
}
return 0;
}
特殊方式一:
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int x;
/*
此处引入新的知识点:
cin读入函数是有返回值的,
此题意思是是如果读到0跳出循环,等价于方式一的写法
while(ture){
if(x>0) break;
}
*/
while(cin>>x && x){
for(int i=1;i<=x;i++){
cout<<i<<' ';
}
cout <<endl;
}
return 0;
}
特殊方式二:
方式三:
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
/*
方式三:
while循环当中是一个",表达式",那么条件里的值就是最后一个",表达式",如果不满足条件break
while的结束条件是0
*/
int x;
while(cin>>x,x){
for(int i=1;i<=x;i++){
cout<<i<<' ';
}
cout<<endl;
}
return 0;
}
特殊方式三:
输入函数不是cin,而是scanf的话:
scanf函数的结束符号是-1,while(scanf("%d",&x) !=- 1) 或 while(~scanf("%d",&x))
原文链接: https://www.cnblogs.com/qxsong/p/15837308.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/187520
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!