1樓:金色潛鳥
我估計,那是用來作時間間隔控制。while(--a); 是迴圈50000次,當a 變0時,while 結束。
為何定得如此大,是因為空迴圈速度很快,只有迴圈很多次才能獲得足夠長的時間間隔。
a=50000; while(--a);
第2個 while(--a); 似乎有問題,死迴圈。是不是前面漏了另乙個 a=50000;
2樓:奔跑的小螃蟹
在微控制器程式設計中,為了控制文字顯示或者處理速度,用乙個while迴圈來延時,如
...a = 50000;
while(--a);
....
當a自減到0時,while語句判斷失敗,迴圈終止。程式執行到下一條語句。
您給出的**段裡,第二個while(--a);開始之前,沒有重新給a賦值,因此第二個while(--a)是不會終止的。
3樓:匿名使用者
while(a--) 的意思是:當a--=0時(為假時)不執行下面的語句,當a--!=0時(為真時)就執行下面語句.
執行完,又進行判斷.
a 的大小隨意你定的.例子是做乙個延時作用.
當50000減到0,就不再執行p1_1=0了,這可根據你的晶振來設定你的時間.
4樓:生活如歌
while(--a);就是為了延時,a不停減1,直到為0.數值越大(最大到65535)延時時間越長。
5樓:用德芙的小光頭
迴圈,當a為真時(大於0時)執行迴圈裡的語錄,可用做延時處理
6樓:匿名使用者
a定義大就是讓它減減的,--a 表示在while裡邊每迴圈一次a就減1一次。
求高手解答微控制器c語言中while(--a)和while(a--)的區別?
7樓:硬體開發
while(--a)和while(a--);看上去跟沒有啥區別一樣,其實區別很大,
先舉個例子說明一下你就明白了。
a = 20
whie(--a)
第一步程式執行到這裡會先執行--a = 19;為真執行內部語句。
a = 20
whie(a--)
第一步程式執行到這裡會判斷 a 值是否為真在執行 a = 20。在執行a-- = 19
自己可以在keil軟體裡面**一下。
8樓:匿名使用者
區別在於判斷while之前減還是之後減,也就是在相同的a初始值情況下,--a會比a--少迴圈一次,因為當a=1的時候,第乙個--a就會退出迴圈,第二個不會。
while和for語句有區別,就是在迴圈體內,無論你使用兩者哪個,a在進入迴圈體都已經發生了-1,也就是說,a相等情況下,兩種進入迴圈後的數值相同,就是迴圈差了一次。
9樓:匿名使用者
while(--a)等價於先將a減小1,再判斷它是否為0 。 while(a--)先判斷它的邏輯值是否為0,再減小1.
比如a=2的話, 第乙個迴圈1次。因為,--a=1, 第二次 --a=0,為假了。
第二個迴圈2次。因為,先判斷2 ,為真,再將a減小得1. 再判斷a==1,為真,再將a減小1,再判斷a==0,不迴圈了。
10樓:匿名使用者
這裡牽扯到的就是--a和a--的區別呢。這麼說吧。假如b=--a;程式執行分兩步,第一步a = a-1;第二步b=a;而如果是b=a--;則第一步和第二步反過來執行。
假如a=8;執行b=--a後a=b=7;執行b=a--後b=8,a=7;同樣執行++時也是一樣的道理
11樓:生活如歌
乙個是先減1,乙個是後減1,其實在程式裡沒有多大差別。
c語言中while(!a)什麼意思?
12樓:珠山龍少
while(!a) 的作用:當a為0時,!a為真,執行迴圈體。當a為1時,!a為假,程式就跳過迴圈體往下執行。
while語句的格式為:
while(條件表示式)
可以看出,while迴圈結構簡單,僅有條件部分,其他成分(如增量等)應另外安排。正因為如此.while語句執行過程是首先判斷while中的「條件表示式』,中的條件是否滿足,滿足,就執行while語句中的語句;不滿足,就退出迴圈。當while中的條件一開始就為0時,則語句一次也不執行;當while中的條件為1 , while語句無限迴圈。
可見while語句的使用極其靈活多樣。
13樓:
while(!a) 表示當a為false(或a等於0)時,執行while迴圈體,否則不執行。其等價語句為
while(a==0)。
14樓:夢國飛
while是乙個迴圈語
句,和for迴圈同是乙個重要的迴圈語句,while(條件表示式)
while(!a) :a為0,!a為真,執行迴圈。a為1,!a為假,程式跳過迴圈往下執行。
15樓:匿名使用者
這種問題是乙個很無聊的問題,在實際程式設計中不可能會碰到,而且作為規範的程式,也不允許這樣的表示式出現。
while (a < b < c)等價於while ((a < b) < c), (a < b)的計算結果將會得到bool值,即true(1)或false(0);然後是bool值和c進行比較,雖然還會得到乙個bool值,但這樣的比較已經沒有意義了。
16樓:匿名使用者
首選,您這個while(a++),這句不成立。while語句在c語言中是條件判斷,所以while(),括號內一般是表示式。如果該表示式值為真則執while中的語句,若為假則執行之外的語句。
例如while(1) ,因為括號內永遠為真,則程式進入列迴圈,既一直執行while中大括內的語句。
另外,您說的a,i,j之內的都是變數名,你可以自己定義任何字母或是單詞。當然不能把變數名定義為c語言中的關鍵字。如:
switch,case等等。具體的您可以找本c語言的書看看,都有哪個些關鍵字。你只要避開這些關鍵字就行,對於變數的命名也有一些其他的規則,也可以在c語言的書中可以找到。
對於變數的含義具體是看你的程式或是函式功能是什麼。另外變數在使用前是要先宣告的。比如:
unsigned char i,這樣就宣告了乙個無符號的字元型變數i.
17樓:匿名使用者
!是非的意思。
整句的通俗意思就是 當不是a的時候,
18樓:調朱弄碧
當不等於a時,做迴圈
19樓:苦澀無人愛
while()是迴圈語句,t是判斷條件,當t為真或非0的話,執行迴圈,否則退出迴圈,比如t=1,迴圈會持續執行,t=0則退出迴圈,或者 t 可以是其他判斷語句,滿足ture時執行迴圈,為false則退出迴圈
20樓:匿名使用者
while(t)
相當於while( t!=0 )
t值為0時,條件為假
t值不為0時,條件為真
while( t )是while( t!=0 )的簡便寫法。
c語言while(a)是什麼意思?
21樓:匿名使用者
如果a=0,則退出迴圈,否則一直執行迴圈
22樓:路過只是巧合
while(a)
a>0,真,執行while內的迴圈
a<0,假,不執行
c語言while(a++)裡的a代表什麼?
23樓:匿名使用者
首選,您這個while(a++),這句不成立。while語句在c語言中是條件判斷,所以while(),括號內一般是表達專式。如
果該屬表示式值為真則執while中的語句,若為假則執行之外的語句。例如while(1) ,因為括號內永遠為真,則程式進入列迴圈,既一直執行while中大括內的語句。
另外,您說的a,i,j之內的都是變數名,你可以自己定義任何字母或是單詞。當然不能把變數名定義為c語言中的關鍵字。如:
switch,case等等。具體的您可以找本c語言的書看看,都有哪個些關鍵字。你只要避開這些關鍵字就行,對於變數的命名也有一些其他的規則,也可以在c語言的書中可以找到。
對於變數的含義具體是看你的程式或是函式功能是什麼。另外變數在使用前是要先宣告的。比如:
unsigned char i,這樣就宣告了乙個無符號的字元型變數i.
24樓:匿名使用者
while(a++)裡的a代表迴圈控制變數,a是個變數名,需要在使用前先行定義
這條語句表達內的意思是:
當a不為0時,進容入迴圈,同時,無論條件是否成立,a在判斷結束後,都會自增1(即:a=a+1)。
這條語句的完整寫法為:
while( a++ != 0 )
這樣看的更清楚,更容易接受一些。
while語句的格式為:
while( e )
說明:括號中的e是任意合法的表示式
當e的運算結果為真(非0)時,進入迴圈,執行迴圈語句while_statements ,當迴圈語句只有一條時,括號{}可以省略。
當沒有迴圈體時,可以寫成:while(e) ; (注意這裡的分號)或while(e){}
25樓:費修星建元
while(!a)
表示當a為false(或a等於0)時,執行while迴圈體,否則不執行。其等價語句為
while(a==0)。
26樓:
你這個統統錯了,while(),括號裡應該是不等式,ex:a=1;while(a<100)
for(a=1;a<100;a++)
在c語言中,while(a[i]){}什麼意思?
27樓:
while(a[i]){}相當於
while(a[i]!=0){}
表示當a[i]不等於零(a[i]為真)時,執行{}中的迴圈體,這裡省略了迴圈體。
28樓:匿名使用者
將陣列a[i]作為判斷是否進行迴圈的條件:
即:若陣列中低 i 個元素a[i]為真,則執回行while迴圈;
若a[i]為假,則不進行答循。
此條語句適合解決針對滿足一定條件的陣列元素進行相同的操作(迴圈體中內容)。
祝你好運!!
29樓:匿名使用者
若就這個表示式講,此處省略了迴圈體,又沒有執行其他條件,改變不了判斷條件的值
回,也就是若原來a[i]表示式答的值(或者邏輯值)為真的話,這裡會是乙個死迴圈,跳不出迴圈體,要是a[i]原來的值為假的話,就什麼也不執行,這句話不具實際意義,不採取任何操作
至於你說的a[i]是乙個字串的話,判斷其ascall碼即可一般的只有這麼乙個表示式沒有意義,可以巢狀使用,達到其他功能!希望對你有幫助!
30樓:匿名使用者
a[i]作為乙個布林表示式座位while的迴圈條件,就是說,如果a[i]的值為0時,迴圈結束,非零是進行迴圈,在程式語言中bool的範圍很廣,字元也可以的,只要其碼值不為零就是bool中的true
31樓:匿名使用者
判斷 條件數值是否為 0 或字元是否空 '\0',滿足條件則退出本迴圈。
32樓:匿名使用者
只要是a[i]代表的資料邏輯值為真,則不進行任何操作。
33樓:匿名使用者
判斷a[i]的值是否為真或者說判斷它的值是否為0如果是0則退出while迴圈
微控制器c語言程式中:while(1)是什麼意思呀?while(2)行不行?
34樓:4終
while(1)表示無限迴圈
抄的執行它內的語句,襲如果寫成while(2)、while(3)等效果是一樣的,操作方法如下:
1、首先新建乙個專案,新增標頭檔案,如圖所示。
2、接著輸入main函式,如圖所示。
3、然後定義乙個陣列(長度為:5),如圖所示。
4、接著使用while迴圈把陣列列印出來,如圖所示。
5、然後在鍵盤上,按快捷鍵f5執行程式,列印出結果,如圖所示,就完成了。
微控制器c語言中定義,微控制器C語言中 定義a1 P0 1 a2 P0 2 a8 P0 7 b P2 0 。a1 a8不斷隨機為1。
這樣實現 sbit p20 p2 0 char consum 0 char i,bitflag 0x01 for i 0 i 8 i if consum 3 p20 1 希望我的回答對你有幫助,有什麼問題歡迎一起 謝謝。 如果是c51微控制器 include void main 如果找完一次p0口後...
pic微控制器c語言中如何巢狀,PIC微控制器c語言中如何巢狀匯編
如果要輸入一大段彙編語句,則用 asm n條彙編語句 endasm 的方法是用keil開發51微控制器時候潛入彙編的 方法,對於pic微控制器來說,不能這楊編譯。因為keil不能編譯pic微控制器的c語言和組合語言,必須用mplab picc或者mplab mc編譯器 一般pic12 16系列的8位...
微控制器C語言程式設計題,微控制器C語言程式設計題 20
爬行的山羊 這是兩個題啊。哈哈好做,第一個有c語言的冒泡法排序,第二個用中斷,讀,輸出就可以 include define led0 0 define led1 1 define led2 2 define ledport p2 sbit sw0 p1 0 sbit sw1 p1 1 sbit sw...