在下面的代碼中,我最初定義了 n 和 k,然后如果我在使用 cin 將 k 作為輸入后將 n 定義為 k/2,則代碼是成功的,但是如果我在 cin 函式之前定義 n=k/2得到一個無限回圈作為輸出?請說明為什么在 cin 函式影響輸出的下面或之后定義。
#include <iostream>
using namespace std;
int main () {
cout<< "how many asterisks you want in the middle column:";
int n,k;
// n=k/2 ;
cin>>k;
// n=k/2;
//some code involving n
return 0;
}
uj5u.com熱心網友回復:
陳述句的順序有所不同:
int k = 2;
int n = k/2;
k = 4;
不同于
int k = 2;
k = 4;
int n = k/2;
在第一種情況下,您得到n = 1,而在第二種情況下n = 2。這真的不應該讓你感到驚訝!如果確實如此,您可能需要在處理回圈之前修改您的編程基礎知識:)
其他事情:
- 從不使用
using namespace std;. 不這樣做,但具體僅匯入你需要的東西會為你節省很多的時間以后,除錯非常奇怪的問題(我不知道這是為什么仍然教):using std::cin;,using std::cout;也許是更長的時間,但要好得多,因為你知道你在你的名字空間中得到了什么! - 正確縮進你的代碼。是的,您的編輯器有一個功能,如果沒有,請使用更好的編輯器(這些東西確實很重要,尤其是對于初學者,因為它們可以幫助您更輕松地發現小錯誤!)。許多初學者喜歡 Code::blocks 作為編輯器,因為它易于設定且性能良好,其他人則喜歡更強大的 VS Code。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/356228.html
上一篇:字串中精確點的Grep變數
