c 語言while迴圈,c語言while的用法

時間 2023-03-25 08:45:08

1樓:

*p1++=p2++,這個是賦值語句,而非比較運算。

字元陣列雖然有大小限制,但是指標就不同,即便超過了大小,指標指向陣列越界後的下乙個記憶體單元,並不會發生錯誤;

另外,printf("%s",a)函式列印字串,它是在遇到字串結束符的時候才終止輸出,此時a陣列的值已經被賦值為p2所指向的記憶體空間的值。

2樓:網友

這個程式是錯的!

因為 a 陣列只有四個元素,分別是:『1』、『2』、『3』、\0 。而第二個陣列是8個元素,怎麼能把 8 個元素逐一賦給 4 個元素的陣列呢?,陣列 a 越界後,改寫了不屬於它的資料,程式是要崩潰的!修改如下:

#include

int main()

迴圈中的語句是乙個賦值語句,先把 *p2 的值賦給 *p1,然後判斷當 *p1 ==0' 時,迴圈結束。

3樓:負負

你要記得,賦值語句最後的返回結果是:左邊變數賦完值之後它裡面的結果。 所以,只有當*p2的結果為0時,這個迴圈才會結束。

4樓:幻夢·人生

賦值語句的返回值為等號左面的值。也就是p1,p1 ==0時候推出。

5樓:樂酷科技

#include

int main()

另外 樓上說得對 這個程式是錯的。

6樓:匿名使用者

這都問 你他嗎垃圾。

c語言while的用法

7樓:滄海雄風

第二個 看見後面的 ; 了嗎抄?

其實完整格式是。

while(p3_7==0)

就是一直迴圈到不等於0 什麼都不幹 實際上正規的寫法應該是 null; 而不是只有乙個;

只有乙個; 在**優化時會被優化掉。

8樓:風雲小子

你這個應該是微控制器裡面計算口輸入按鈕計數,然後通過p0十位p2個位,接數碼管顯示的程式。下面是給您分析的過程(第二個是檢測按鍵是否起來):

void main(void)

p0=table[count/10];

p2=table[count%10];

}while(p3_7==0); 檢測按鈕是否起來,為下一次檢測按鈕 按下做好準備}}

}這個程式很簡單,要是彙編的話,挺複雜的。

9樓:匿名使用者

while(p3_7==0);

這個while語句的迴圈體中只有乙個空語句(即只有乙個分號的語句),所以如果p3_7==0 則進入迴圈體中去執行一下空語句(即什麼也不幹)。呵呵。

10樓:匿名使用者

while(p3_7==0);

等待埠拉高,如果現在是低電平的話,將進入死迴圈,什麼事情都不幹,埠拉高後就跳出迴圈。

11樓:吶誰ni在**

while(p3_7==0);

就是說當p3_7==0時,該函式保持原樣,不變、

12樓:程式設計師的每一天

c語言迴圈結構之while迴圈語句。

c++ while為什麼會無限迴圈?

13樓:紫薇參星

你的程式的問題是把for迴圈變數a,在while迴圈中改變大小了,導致無限迴圈。

解決方法是把a的值賦給臨時變數t,用t做while迴圈。

還有x的輸入要用cin.

另外,對於每個數a,b都要初始化為0.

改完的程式如下(見圖)

14樓:聽不清啊

for(a=10;a<=x;a++)

因為這裡的while迴圈每次到a==0時就結束迴圈,執行a++就變成1,然而因為x是乙個大於9的正數(否則就不會進入迴圈),就會不停地重複以上的操作,所以在這裡,是for迴圈發生了死迴圈。

15樓:

while迴圈的用法是。

while(判斷條件)

如果判斷條件為真,則實行迴圈內部**;

如果判斷條件為假,則跳出迴圈,執行後續**。

而判斷條件為真的時候,值是1;判斷條件為假的時候,值是0故而,while 1是無限迴圈。

---僅供參考。

c語言while迴圈用法

16樓:霂棪愛娛樂

c語言while迴圈用法:

一般形式如下:

while(表示式)

{迴圈體內語句}

迴圈體外語句。

其中執行過程如下:

(1)計算while後面括號裡表示式的值,若其結果非0,則轉入(2),否則轉(3)。

(2)執行迴圈體,轉(1)。

(3)退出迴圈,執行迴圈體下面的語句。

由於是先執行判斷後執行迴圈體,所以迴圈體可能一次都不執行。

迴圈體可以為空語句「;」

使用:如果迴圈次數在執行迴圈體之前就已確定,一般用for語句。如果迴圈次數是由迴圈體的執**況確定的,一般用while語句或者do- while語句。

當迴圈體至少執行一次時,用do-while語句,反之,如果迴圈體可能一次也不執行,則選用while語句。c++/c迴圈語句中,for語句使用頻率最高,while語句其次,do語句很少用。

三種迴圈語句for、while、do-while可以互相巢狀自由組合。但要注意的是,各迴圈必須完整,相互之間絕不允許交叉。

c語言中的while迴圈是怎樣的?

17樓:走進支教生活

我是一名多年的微控制器工程師,下面的講解你可以參考一下。

原句是下面這樣的。

while(n)

講解:1 while(1)是無限迴圈花括號裡面的語句。

比如:while(1)

這樣語句a=b; c=d;,從上到下執行完後,然後又回到起始點,再從上到下執行,如此無限迴圈。

2 while(i--)

假設i=50,每執行完花括號裡面一次,i就減1,這個就是符號「--的原理,「-名字叫做自減,直到i=0就退出while花括號裡面的語言,相當於執行while花括號裡面的語句50次。

比如:i=50

while(i--)

e=g;這樣語句a=b; c=d;,從上到下執行完後,然後又回到起始點,再從上到下執行,如此迴圈50次後,就退出while語句,往下面執行e=g。

c語言while迴圈要點

18樓:戶如樂

while語句在使用過程需要注意幾個要點:

一、無限迴圈

先來看看以下的**示例。

執行**後,會迴圈輸出n=0

在上述**中,雖然有n++自增,但while迴圈沒有花括號將語句包含。對於while迴圈,如果沒有花括號,只有直接跟在while測試條件後的語句才是迴圈的一部分,因此上述**中n++不屬於迴圈。

二、空語句

在c語言中,單獨的分號表示空語句。先來看以下**。

程式的輸出結果是:

n = 4在該例中,在while迴圈後有分號(;)這個分號是單獨的一條語句,即空語句,什麼都不做。while在執行完迴圈條件測試後,執行空語句,繼而進行下一次迴圈,一直到迴圈條件不滿足為止。

在該例中,雖然printf()語句在while之後,但while語句結束後有空語句,printf()並不屬於while迴圈,因此printf()只會列印一次。

c語言while迴圈問題2?

19樓:格里程式設計辦公技巧

**有幾個錯誤,一是scanf格式要用雙引號"";

二是判斷要使用==號,=號是賦值。如果是第二個輸入!號,while(c='!一直為ture會死迴圈。

20樓:煥煥的工科學長

首先來看看你的程式,整體上來說,還是沒有大的問題的。不過,需要注意的是條件語句那裡,關係運算子有,大於》,小於<,等於==,不等於!=,大於等於》=,小於等於<=這幾種。

你的第二個while處的條件判斷語句寫錯了,寫成了賦值語句。

希望我的能夠幫助你解決你當前的問題。

21樓:快樂翔雲

首先明確scanf的作用,scanf從輸入流中獲取需要的資料,scanf中格式控制為%c的時候,scanf將從輸入流中取得乙個資料,並將這個資料放在某乙個位址的空間中,你輸入兩次'!'可能被第乙個while中的三個scanf吃乾淨了,但最重要的是,你的scanf很明顯寫錯了,第二個引數是乙個位址,你這執行必錯。

C語言怎麼退出while迴圈,c語言中while的用法

不不見不念 if條件語句寫錯了 if a 判斷字串相等不能用等號 if strcmp a,0 要這麼寫 while 是乙個迴圈體,退出迴圈體的方法有 1 迴圈體條件 不成立,如 while a 0 當 a 0 的時候,條件 a 0不成立,while 迴圈結束,退出 while 迴圈。2 在迴圈體內使...

while 的用法 c語言,c語言中while的用法

1024程式設計師 c語言迴圈結構之while迴圈語句 while 表示式 就是當 表示式的則為非零時,執行迴圈體內的語句!你的程式相當於 int jsvalue long n if s n return 1 if s n return 0 k是long int型別,所以k不能為小數 輸入n迴圈開始...

C語言如何使while迴圈兩次,C語言中如何實現while迴圈,執行設定的一段時間,比如5秒

潭清安董丁 anf c a 來接收使用者輸入的乙個字元時,會將回車符也接收下來。c語言在處理時,會將使用者輸入放在鍵盤緩衝區,使用scanf來接收 c時,編譯器從鍵盤緩衝區讀取乙個char字元,但是並不清空後面的字元,所以導致下一次scanf c a 時,將剩下的回車符先給讀進來,並進行處理了。要解...