我是C新手,不理解循環語法的這種類型。循環語法的C++
for(int i(9), j(0); i > j; i--, j++)
cout << i;
這給出了98765的結果,但是爲什麼?
我已經習慣了循環是這樣的:
for(int i = 9, int j = 0; i>j; i--, j++){
System.out.println(i);
}
我看到,我被初始化爲9和j爲0,但它是如何得到一個數字那麼大?
我是C新手,不理解循環語法的這種類型。循環語法的C++
for(int i(9), j(0); i > j; i--, j++)
cout << i;
這給出了98765的結果,但是爲什麼?
我已經習慣了循環是這樣的:
for(int i = 9, int j = 0; i>j; i--, j++){
System.out.println(i);
}
我看到,我被初始化爲9和j爲0,但它是如何得到一個數字那麼大?
它按預期打印9,8,7,6,5,沒有任何逗號。它不是一個大數字。
System.out.println()
- 在最後打印一個新行。
cout
- 行爲方式與System.out.print()
類似,不會在最後打印換行符。
因爲不打印新的行字符:
因爲空白被忽略for(int i(9), j(0); i > j; i--, j++)
cout << i << '\n';
縮進不會用C++沒關係...
因此,
for(int i(9), j(0); i > j; i--, j++)
cout << i;
的是相同:
for(int i(9), j(0); i > j; i--, j++)
cout << i;
這是:
for(int i(9), j(0); i > j; i--, j++) {
cout << i;
}
所以它不是1號碼,但很多。
這在Java和大多數C族語言中都是一樣的。
與println
從System.out的(一個PrintStream)... <<
只寫你傳遞什麼cout
,通常是標準輸出。 要正確寫一個換行符cout
你應該使用:
cout << i << endl;
我只是想添加一些已經在這裏張貼的(好)答案:
int i(9);
做同樣的事情
int i = 9;
這就是所謂直接初始化。看看:Constructor of type int
我認爲這是什麼混淆你在第一個地方。
它沒有打印大數字,它只是在每個迭代/循環中一個接一個地打印i
。要了解使用此
cout << i << endl;
,或者嘗試不同的編號爲i
或j
這不是一個大數目。實際上,輸出是5個不同的數字(9,8,7,6,5)。 你只需要通過以下方法來打印他們在不同的線路:
cout<<i<<endl;
OR
cout<<i<<"\n";
OR
printf("%d\n",i);
還有一兩件事: INT I(9)簡單地轉讓值9給我。它與int i = 9相同。
這聽起來像您可能需要學習如何使用調試器來逐步執行代碼。使用一個好的調試器,您可以逐行執行您的程序,並查看它與您期望的偏離的位置。如果你打算做任何編程,這是一個重要的工具。詳細閱讀:** [如何調試小程序](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)** – NathanOliver
'cout << i << endl; '會產生與Java源代碼相同的輸出 – StahlRat
你究竟對此感到困惑?整數初始化,使用逗號運算符,還是爲什麼您的輸出不會刷新到終端? –