中かっこの使用に関する以前の質問をいくつか読んだことがあります。私の理解では、1行しかない場合は中かっこを使用しなくても問題ありませんが、多数のコード行を使用する場合は、大かっこを使用する必要があります。
私には課題があり、インストラクターは、良い習慣のためにあらゆる状況でブラケットを使用するように私たちに要求しています. また、サンプル コードの調査と使用も許可してくれます。
さて、私の質問は、括弧を使用しないサンプル コードを見つけたことです。ブラケットをコードに追加しようとすると、出力が正しくなくなります。 誰かが複数行のコードで中括弧を正しく使用する方法を説明し、探している結果を達成する方法についての推奨事項を提案できますか?
出力が正しい場合のコードは次のとおりです。
void printStars(int i, int n)
// The calling program invokes this function as follows: printStars(1, n);
// n >= 1
{
if(i == n)
{
for(int j = 1; j <= n; j++) cout << '*'; cout << endl;
for(int j = 1; j <= n; j++) cout << '*'; cout << endl;
}
else
{
for(int j = 1; j <= i; j++) cout << '*'; cout << endl;
printStars(i+1, n); // recursive invocation
for(int j = 1; j <= i; j++) cout << '*'; cout << endl;
}
} // printStars
int main() {
int n;
int i=0;
cout << "Enter the number of lines in the grid: ";
cin>> n;
cout << endl;
printStars(i,n);
return 0;
}
そして、次のように「クリーンアップ」しようとすると:
void printStars(int i, int n)
// The calling program invokes this function as follows: printStars(1, n);
{
if(i == n)
{
for(int j = 1; j <= n; j++)
{
cout << '*';
cout << endl;
}
for(int j = 1; j <= n; j++)
{
cout << '*';
cout << endl;
}
}
else
{
for(int j = 1; j <= i; j++)
{
cout << '*';
cout << endl;
}
printStars(i+1, n); // recursive invocation
for(int j = 1; j <= i; j++)
{
cout << '*';
cout << endl;
}
}
} // printStars
int main() {
int n;
int i=0;
cout << "Enter the number of lines in the grid: ";
cin>> n;
cout << endl;
printStars(i,n);
return 0;
}