(Perl新手) 我有一個小型的perl程序可以計算階乘。我想使用一個while循環,以便在用戶得到結果後,他們會被要求「計算另一個階乘?Y/N」並且讓Y再次運行代碼&有N結束程序。perl - 嘗試使用while循環詢問用戶是否他們想再次這樣做
這裏是我的代碼:
print"Welcome! Would you like to calculate a factorial? Y/N\n";
$decision = <STDIN>;
while $decision == "Y";
{
print"Enter a positive # more than 0: \n";
$num = <STDIN>;
$fact = 1;
while($num>1)
{
$fact = $fact * $num;
$num $num - 1;
}
print $fact\n;
print"Calculate another factorial? Y/N\n";
$decision = <STDIN>;
}
system("pause");
什麼是給我的麻煩就是把while循環,以及如何使Y/N選項的工作。我也不清楚system("pause")
和sleep
的功能。我知道system("pause")
可以讓我的程序正常工作。
需要一個'chomp',和''==是一個數字比較 - 你可能想'eq' – Sobrique
當我運行它,它會立即自行關閉,儘管'系統( 「暫停」);'待辦事項你知道爲什麼會通過查看代碼來實現嗎? –
當我嘗試你的代碼,然後我得到'標量找到操作符預期在err.pl行15,在$ num $ num「附近$ \t(在$ num之前缺少操作符) 找到反斜槓,其中操作符預期在err.pl第18行,接近「$ fact \」 \t(在\之前缺少運算符) 語法錯誤在err.pl第5行附近「while $ decision」 語法錯誤在err.pl第15行附近「$ num $ num 「 執行err.pl因編譯錯誤而中止.',即Perl甚至沒有機會考慮你的'system(」pause「)'行。 – PerlDuck