我需要以下C++代碼的幫助,試圖在程序結尾處添加一個continue
,以便它爲用戶指定尺寸的矩形並要求用戶重新執行程序。當我嘗試使用遞歸時,我的C++程序不能工作嗎?
在程序的最後部分沒有愚蠢的if和else語句的情況下編譯並運行它,並且它可以工作。但隨着continue
/遞歸失敗慘敗。 LOLZ。我= noob。
int main()
{
int height, width, tmp, tmp2;
char continue;
cout << "Please Enter The Height Of A Rectangle (whole numbers only): ";
height:
cin >> height;
if(height<1)
{
cout << " Please Enter A Height Of Between 1 And 20: ";
goto height;
}
cout << "Please Enter The Width Of A Rectangle (whole numbers only): ";
width:
cin >> width;
if(width<1)
{
cout << " Please Enter A Width Of Between 1 And 38: ";
goto width;
}
cout << ' '; // Add a space at the start (to neaten top)
for(tmp=0; tmp!=width; tmp++) cout << "__"; // Top Of Rectangle
for(tmp=0; tmp!=(height-1); tmp++)
{
cout << "\n|"; // Left Side Of Rectangle
for(tmp2=0; tmp2!=width; tmp2++) cout << " "; // Create A Gap Between Sides
cout << "|";
} // Right Side Of Rectangle
cout << "\n|"; // Left Side Of Bottom Of Rectangle to neaten bottom)
for(tmp=0; tmp!=width; tmp++) cout << "__"; // Bottom Of Rectangle
cout << '|'; // Right Side Of Bottom Of Rectangle (to neaten bottom)
cout << "Type 'y' if you would like to continue and any other combination to quit.";
continue:
cin >> continue;
if(continue == 'y')
{
main();
cout << "\n\n";
system("PAUSE");
return 0;
}
else
cout << "\n\n";
system("PAUSE");
return 0;
}
我知道有可行的一個更好的方式做它,我只是不知道該怎麼做繼續抱歉,哈哈 – user352258 2011-06-03 00:56:31
(移動在[答案](http://stackoverflow.com/questions/6221953/noob-編程幫助c/6222004#6222004)) – 2011-06-03 01:02:23
@Matteo:值得承認'壞'和'非法'之間的區別。 'goto'通常不好,在main中遞歸是非法的。 – ildjarn 2011-06-03 01:05:04