#include<iostream>
using namespace std;
void main()
{
for(;;)
{
int a;
cin>>a;
cout<<a<<endl;
}
}
这段代码不是应该在输入一个数之后才循环的么
就是说输入3 然后程序输出3 接着要我们再输入一个数之后才继续循环
可是为什么输入非数字之后
就自动循环了呢?
#include<iostream>
using namespace std;
void main()
{
for(;;)
{
int a;
cin>>a;
cout<<a<<endl;
}
}
这段代码不是应该在输入一个数之后才循环的么
就是说输入3 然后程序输出3 接着要我们再输入一个数之后才继续循环
可是为什么输入非数字之后
就自动循环了呢?
你这个for循环根本没有判断条件。。所以相当于死循环 一直会循环的。。不论你输入发么 都会循环的,还有。。你虽然a是int型的。能保存整形。但是你输入非数字,如字母,他保存的是他们的ASCII码。
我觉得首先要明白 for(;;)的用法,这个你应该明白的,之后就是这个程序的分析了:
#include<iostream> using namespace std; void main() { for(;;)
//这里没有 for(AAA;BBB;CCC) {---------} 其中的首句AAA语句,判断条件BBB,即循环后句CCC都省略了 { int a; //定义变量 a, 只要在使用前定义,但是,不建议在循环体内定义,建议定义在循环体外.... cin>>a; // 由于该句 输入接受语句在循环体内,故每一次循环都要输入; cout<<a<<endl; //在输入时候,由于循环,立刻输出.... } } //你先在输入一次之后便循环,那是有别的作用,而不是在这里的程序;
这是C#的语句,,你看下有没帮助
string sTemp; int iCount;
Console.WriteLine("请输入一个数字: "); sTemp = Console.ReadLine();
try { iCount = Int32.Parse(sTemp);
for (int i = 0; i < iCount; ++i) { Console.Write("* "); } } catch (Exception e) { Console.WriteLine("你输入的'{0}'不是一个有效的整数", sTemp); }
不会吧?真的像你说的那样呀?没想通,希望你想通了或者解决了告诉我下,谢了~