#include <iostream>
#include <conio.h>
int main()
{
int i;
for (i = 1; i = 100; 1 + 1);
{
std::cout << i << " = " << i *i << std::endl;
}
do
{
std::cout << i << " = " << i *i << std::endl;
} while (i = 100)
getch();
}
为什么这根本不起作用。从1到100给出立方体数量的数字是很明显的,它只是打开而没有任何反应。有人可以帮忙吗?我只是一个初学者,我无法解决这个问题。感谢
答案 0 :(得分:4)
你有很多错误,例如
for ( i = 1 ; i = 100 ; 1+1 ) ;
应该是:
for ( i = 1 ; i <= 100 ; i += 1 )
(请注意删除迷路;
以及其他更改。
此外:
while ( i = 100 )
应该是:
while ( i <= 100 );
(请注意添加了遗失;
以及从=
到<=
的更改。
您可能还想在i
循环之前重新初始化do
,并在循环中递增它:
i = 1;
do
{
std::cout << i << " = " << i * i << std::endl;
i += 1;
} while (i <= 100);
答案 1 :(得分:1)
do-while-loops用分号终止。
要增加您的价值,必须写i=i+1
,i+=1
,++i
或i++
而不是1+1
。
你的for循环结束时有一个半圆形,这使循环什么都不做。
只要i = 100
始终为真,您就在运行循环。我也怀疑你是i == 100
,因为它总是错误的。你最好写i < 100
或i <= 100
(对于for-和while-loop)
您不要在循环之间重置i
。
最后但并非最不重要的是,你不会在while循环中增加i
。所以这个循环将永远或永远运行,因为i
永远不会改变。
#include <iostream>
#include <conio.h>
int main()
{
int i;
for (i = 1; i <= 100; ++i)
{
std::cout << i << " = " << i *i << std::endl;
}
i = 1; //Reset
do
{
std::cout << i << " = " << i *i << std::endl;
i++;
} while (i <= 100);
getch();
}
我希望我能得到这一切。
答案 2 :(得分:0)
1+1
是问题所在。你陷入无限循环。你永远不会增加i
因此它永远不会达到100而永远不会退出for循环。
其他答案中也有第二个错误。将for-loop i = 100
更改为1 <= 100
。
答案 3 :(得分:0)
#include <iostream>
// delete because this is unneeded and emits error on some compilers
//#include <conio.h>
int main ()
{
int i ;
for ( i = 1 ; i <= 100 ; i++ ) // fix second and third expression and remove junk semicolon
{
std :: cout << i << " = " << i *i << std :: endl ;
}
i = 1; // add
do {
std :: cout << i << " = " << i *i << std :: endl ;
} while ( (++i) <= 100 ); // change = to <=, update i and add semicolon
// delete because this is unneeded and emits error on some compilers
//getch () ;
}
答案 4 :(得分:0)
你的for循环错了,你可能想要
#include <iostream>
#include <conio.h>
int main ()
{
int i ;
for ( i = 1 ; i < 100 ; i++ )
{
std :: cout << i << " = " << i *i << std :: endl ;
}
getch () ; //no clue what this is, but you probably know
}