新手上路,請多指教

#include<iostream>
int main(){
int i;
while(std::cin>>i){
std::cout<<i<<std::endl;
}
這段代碼中,while回圈是先讀入所有資料流保存到cin中再執行std::cout操作還是讀入一個資料執行一次回圈體呢?
while陳述句的執行順序是先判斷括號內的條件是否為真,若果為真,執行回圈體;若果為假,則結束回圈。那么此時通過while(std::cin>>i)輸入了多個數值,如:1 2 3 4 j,是當輸入1時判斷為真,然后執行std::cout<<i<<std::endl;還是等輸入到j的時候,才判斷是否為真,進而決定是否執行輸出陳述句?
而這個問題在for回圈中更難以理解。
我們需要用戶輸入的數值來初始化,則for(std::cin>>i; i<100&i>0;),而for的執行順序為先初始化,然后判斷條件是否為真,若為真則執行回圈體,然后執行for的最后一個運算式,但在測驗時發現仍然可以輸入多個數值,并得到回圈體的結果,但是邏輯上不是應該只初始化一次嗎?
for(std::cin>>i; i<100&i>0;){
std::cout<<i<<std::endl;
}
那么,std::cin>>i在回圈結構中執行的順序到底是怎么樣的,期待大神的解答,小弟不勝感激。
另外,本人剛開始學習C++,用的是最簡單的gcc+dos命令解釋程式,還望大神能用淺顯一點的語言和實體給小弟傳道解惑,萬分感謝
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/283775.html
標籤:C++ 語言
上一篇:以下代碼是我自己寫的,可以實作排序,但是總覺得它有點奇怪,到底算哪一種排序演算法呢?
下一篇:求助
