for迴圈執行幾次語句,乙個for迴圈執行幾次語句

時間 2022-03-15 05:35:10

1樓:7靜芯盡力

執行四個語句:

1、先給i賦初值1,

2、判斷i是否小於等於10,

3、 若是則執行語句, 之後值增 加1。

4、再重新判斷, 直到條件為假, 即i>10時, 結束迴圈

2樓:

for迴圈程式語言中的語句之一,用於迴圈執行。for迴圈是開界的,它的一般形式為: for(; 《條件表示式》; ) 語句; 初始化總是乙個賦值語句, 它用來給迴圈控制變數賦初值; 條件表示式是乙個關係表示式, 它決定什麼時候退出迴圈; 增量定義迴圈控制變數每迴圈一次後 按什麼方式變化。

這三個部分之間用";"分開。 例如:for(i=1; i<=10; i++) 語句; 上例中先給i賦初值1, 判斷i是否小於等於10, 若是則執行語句, 之後值增 加1。

再重新判斷, 直到條件為假, 即i>10時, 結束迴圈。

for語句比while語句和do-while都要靈活,是一種功能更大、更常用的迴圈語句,它的一般語法格式為:

for(表示式1;表示式2;表示式3)

其中,表示式可以省略,但是分號不可省略。

c語言的for迴圈中執行一次需多少機器週期?

3樓:萬能導師

機器迴圈,當然只是在微控制器中,不同的微控制器使用不同的編譯軟體,最終都轉換成彙編,把機器**燒錄成微控制器。

不同的編譯軟體可以用不同的方式編譯語句。以keil為例。(我= 0;我< 1;n + +我+ +);(i, n是char或unsigned char)

賦值語句(i=0)有兩個機械迴圈,

乙個判斷語句(i <1) 4個機械迴圈,

乙個自加語句(n++) 1機械迴圈,

另乙個自我遞增語句(i++)1機械迴圈,

另乙個判斷語句(i <1) 4個機械迴圈,結束。

擴充套件資料:

指令週期:

每次cpu獲取一條指令並執行它,它就完成一系列操作,通常稱為指令週期。換句話說,指令週期就是獲取一條指令並執行它所花費的時間。由於每條指令的操作功能不同,每條指令的指令週期也不同。

例如加法指令的指令週期與乘法指令的指令週期是不同的。指令週期通常以cpu週期的數量表示,也稱為機器週期。所需的機器週期數隨指令的不同而變化。對於一些簡單的單位元組指令。

在指令取出週期中,將指令取出到指令暫存器後,立即對其進行解碼並執行,不需要其他機器週期。對於更複雜的指令,例如轉換和乘法指令,需要兩個或更多的機器週期。

具有乙個機器週期的指令通常稱為單週期指令,具有兩個機器週期的指令稱為雙週期指令。

4樓:小雨手機使用者

機器週期當然是在微控制器上才有的說法,不同的微控制器採用不同的編譯軟體,最終都是轉成彙編、機器碼燒錄進微控制器。

不同的編譯軟體,對 for 語句的編譯也不盡相同,以keil 為例,對 for(i=0;i<1;i++) n++;(i,n 均為 char 型或 unsigned char 型)進行編譯,得:

①一條賦值語句(i=0) 2個機械週期,

②一條判斷語句(i<1) 4個機械週期,

③一條自增語句(n++) 1個機械週期,

④又一條自增語句(i++) 1個機械週期,⑤又一條判斷語句(i<1) 4個機械週期,結束。

5樓:希聲和寡

***********************************=

問題補充:5樓的朋友,如果我改成

for (i=9;i<100;i++)

x=2;

其延時又是多少?

***********************************=

賦值語句的耗時一般是不計入時間消耗的(就像我們計算時間複雜度時,不考慮賦值的時間消耗一樣)

所以:for (i=9;i<100;i++)

x=2;

的時間消耗就可以理解為for (i=9;i<100;i++);的時間消耗,

大約就是:

92*8*1us=0.736ms(12m晶振)

12m的晶振的機器週期是1/12m*12,就是1us

其次不同的微控制器執行語句的機器週期也不一定一樣(比如:atmel 51系列及大多數51的乙個機器週期是12個時鐘週期,華邦的只需要4個時鐘週期)。不過大體來說,一條for迴圈大概8個機器週期,在12m晶振下,通常用以下**實現1ms的延時:

void delayms(unsigned int ms) }

大概算一下,120*8*1us=1ms,如果需要精確的定時,還是得用定時器。

如果是for (i=0;i<100;i++);的話,

那麼 大概算一下,100*8*1us=0.8ms

6樓:匿名使用者

for(i = 0; i < 100; i++);

這條語句被優化掉了,

你可以將i的宣告新增volatile以阻止編譯器對其進行優化然後在用3樓 giftbowen 的方法試之

7樓:

利用clock()函式

clock_t start=clock();

for(i=0;i<100;i++);

clock_t end=clock();

這裡clock_t 是clock()函式返回型別的別名,意味著可以講變數宣告為clock_t型別,接受clock()函式返回值

clock()函式返回程式開始執行後的系統時間end-start的值就是100次for迴圈所用的系統時間不過我試了一下,好像,就算讓for迴圈不執行空語句,100次for迴圈所用的系統時間也是0.0

系統時間的單位是ms可能跟機器週期單位是μs差很多吧

8樓:匿名使用者

clock函式,計算用到的時鐘數。

9樓:世鑲柳

執行時間可能是零!

這和編譯器有關(如優化級別),還和cpu有關(如流水線不一樣)。

c語言 for迴圈執行步驟

10樓:一騎當後

簡單的for迴圈程式如下:

for(int i=0;i<20;i++)執行步驟是:

1、i=0 初始化初值;

2、 進行條件專判斷i是否

<20,如果條屬件為真,則繼續執行;

3、執行迴圈體的**;

4、i++ 變數i自增一次;

5、回到第2步,一直迴圈,直到第2步條件為假時, 退出迴圈,結束。

11樓:你豈是我的對手

開啟嗶哩嗶哩,搜尋"詳解c語言之for迴圈執行順序",有詳細講解for迴圈

12樓:吉祥二進位制

c語言for迴圈的bai

格式一般如下du:

for (exp1; exp2; exp3 )

13樓:匿名使用者

for中的難點在於:

如下語句:

int a=10,b=10,k;

for(k=0;a>8;b=++k)

答案:10,9,9,0

注意:for的執行步驟書專上很少有這樣的例子解屬釋,開始表示式3沒有執行b=++k;在第一次的迴圈結束後,才開始執行的。

14樓:幻☆天芒

for迴圈下沒有{}的話,只管下乙個分號句,有{}的話,就是{}內的所有。for迴圈是自信完迴圈體就下一次迴圈,不是程式結尾。

15樓:葉小憐

for(a; b; c)

首先抄執行a,bai然後判斷是否滿足b,如du果不滿足就退出迴圈,執行循zhi環下面的語句,dao如果滿足,就依次執行statementq1,statement2。。。最後執行c,然後再判斷b是否滿足,再像上面一樣

也就是說a只在第一次執行的時候執行,b,c要反覆執行

16樓:匿名使用者

關注for迴圈語句後面的'{}'的範圍即可

for迴圈語句的第乙個表示式在整個迴圈體中執行的次數為 ,第二個表示式省略時相當於其

17樓:匿名使用者

for迴圈語句的第乙個表示式在整個迴圈體中執行的次數為 1 ,第二個表示式省略時相當於其值為 1

18樓:匿名使用者

第乙個表示式執行一次,第二個表示式省略相當於其值為true

這個for迴圈語句內的兩個for語句是怎麼執行的

19樓:匿名使用者

語句內的兩個for迴圈,沒有{}括號來括,因此是直接迴圈,比如,i=1時,對於語句中第乙個for迴圈,此時j=4,i=1,迴圈4次,輸出四次空格,然後執行後乙個for迴圈,此時j=1,i=1,滿足的只有一次,輸出乙個*,for迴圈結束,再換行符換行。

外面執行4次for迴圈,因此是四行。

估計應該是輸出*號的三角形圖案。

20樓:聽不清啊

1)外層的i取乙個值,滿足條件則進入迴圈。

2)內層迴圈j取乙個值,滿足條件則進入迴圈。

3)迴圈結束後,外層的i加1,轉1)。

21樓:崔元浩

第乙個for先迴圈完了再迴圈第二個for,當然得受最外面那個for的影響,效果就是這樣的:

****

*****

*******

22樓:匿名使用者

i:1j:4321

j:1i:2

j:432

j:13

i:3j:43

j:135

i:4j:4

j:1357

c語言中for迴圈語句 for(i=1;i<10;i++)這個一共執行幾次 我總是無法完全理解 求

23樓:匿名使用者

首先要知道for語句

的執行原理,這樣你就知道答案了:

現在以 for(i=1;i<10;i++)為例說明如下:

1.:執行到for語句時,讓i=1,但這只執行一次。也就是說for語句中第乙個分號前的語句只執行一次,就是相當於初始化

2.:判斷第二個分號前的**是否為真

如果為假則退出for語句,就不執行for語句的後面{}中的語句,當然也就不執行第二個分號後的**了

如果為真,則先執行for語句的後面{}中的語句,如果期間沒有跳出語句的**則執行第二個分號後的**,再跳回到2步進行判斷!

所以你的這個for迴圈如下執行

先 i=1

1次,此時i=1,滿足i<10 執行for語句內**,執行i++(i=2)

2次,此時i=2,滿足i<10 執行for語句內**,執行i++(i=3)

3次,此時i=3,滿足i<10 執行for語句內**,執行i++(i=4)

4次,此時i=4,滿足i<10 執行for語句內**,執行i++(i=5)

5次,此時i=5,滿足i<10 執行for語句內**,執行i++(i=6)

6次,此時i=6,滿足i<10 執行for語句內**,執行i++(i=7)

7次,此時i=7,滿足i<10 執行for語句內**,執行i++(i=8)

8次,此時i=8,滿足i<10 執行for語句內**,執行i++(i=9)

9次,此時i=9,滿足i<10 執行for語句內**,執行i++(i=10)

此時i=10,不滿足i<10 退出for語句,未執行i++(i=10)

24樓:無奈去遊戲

9次 i=1 小於10 進入迴圈 執行宣告 後i++i=2 一次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=3 2次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=4 3次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=5 4次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=6 5次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=7 6次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=8 7次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=9 8次完成,

返回for 判斷小於10 進入迴圈執行宣告後i++i=10 9次完成,

大於10跳出迴圈

C語言乙個for迴圈有幾條語句?

三條,語句之間用 分隔。語句可以省略,但是 不可以省略。這個沒有限制的,for的引數裡面的 符號只是用來區分3個語句塊的用途,分別是 初始化,迴圈條件,累加器,實際上下面這個語句也是正確的。如果都寫的話是3個語句。c語言for迴圈巢狀語句中有連續多個for語句怎麼執行的?舉個例子。int n 0 f...

sql語句,乙個sql語句

select intol.gno,sum outl.amount sum intol.amount from intol,outl where intol.gno outl.gno group by intol.gno順便說下這種寫法如果intol和outl中gno相同記錄有多個時,得出的sum是錯...

for迴圈怎麼寫,用一個for迴圈怎麼輸出九九乘法表?

for迴圈的特點 迴圈次數確定的 可計算的 迴圈變數在每次迴圈中取不同值。當然這個要求不是必須的。一般來說,迴圈變數初值為0,在迴圈中每次增加1,迴圈體中可以利用這個變數的取值來進行運算。格式 for 迴圈初始化語句a 迴圈條件b 每次迴圈體執行完執行的語句c 執行順序 abdcbdcbdc.b 舉...