本文目錄一覽:
c語言while循環的問題
while循環是對while括號後面的表達式進行真假的判斷,,比如你用的a,C語言中有這樣的規定,如果a=0;那麼a
表達的就是假,如果a不為0,那麼他表示的是真,因此,上面的循環,只要a不等於0,那麼循環就一直進行
剛開始學的時候,我一直以為,只有在等於1的時候才是真,等於2他就不能循環了,其實那是錯的,編譯器判斷真假條件的標準是他等不等於0,而不是等不等於1,樓主記住了哦~
還有就是,如果樓主的意願是讓a=0的時候退出循環,那麼就可以按照你寫的方法進行,如果樓主的意願是讓a=0的時候才循環,那麼有2種寫法
while(!a)
{
//對a進行非操作
}
還有就是
while(0==a)
{}
建議寫成0==
a
的形式,其實0==a,和a==0實質是一樣的,但是如果你講0==a,寫成了0=a,那麼編譯器會報錯,而將
a==0寫成a=0編譯器是不會報錯的,可以減少風險。
祝你進步!!
C語言while語句的相關問題
while(表達式1)
當表達式值為假時結束循環,為真時保持循環
c語言規定,所有的變量都有值,而在所有的值裡面,只有0,NULL。\0三個值可以看做為假(原則上float型的0.0也是真,但是實際編程中把他看做成了int的0,為假)其他值都是真
而且對於任何值為真的變量x,!x的值就是0,而對於x=0的情況,!x默認為1
所以,while (!x)等價於while(!x != 0) 等價於while (x == 0)
c語言 while 語句問題
Z:printf(“aaaaaaaaaa”);
Y:printf(“dddddddddd”);
這兩個goto的問題;
1,當開始輸入c=1時while函數體通過goto Z語句跳出while循環體去執行Z語句,接着順序執行Y語句,到此程序運行完畢:輸出結果為:aaaaaaaaaadddddddddd。再次運行還是可以得到相同的結果。
2,當輸入C=2時while函數體通過goto Y語句跳出while循環體去執行Y語句,此時程序運行結束:輸出結果為:dddddddddd。再次運行還是可以得到相同的結果。
3,當輸入既不是1又不是2時,比如就是樓住所說的字母吧。while函數體去執行其內語句“else printf(“aadd”); ”程序執行就進入死循環:不斷地輸出aadd。
解釋如下:當定義C為整型變量時,程序自動給C分配了存儲空間,當輸入一字母給C時,此字母的值也相應存入了其存儲空間;然後經過if語句的判斷後,最後執行while循環體內的語句“else printf(“aadd”);”,執行完後又進入while函數體入口;由於此時C的地址空間已經存在特定的值 ,所以程序不再請求輸入一個值,而是繼續經過if語句判斷後去執行語句“else printf(“aadd”);”輸出aadd,如此循環下去就是死循環了。
要點是:scanf函數不能在同一地址空間上多次賦值,只許一次。
c語言 while語句問題
1是用輸入的變量x的值作為中斷輸入循環的標誌,即當輸入0時,結束輸入。
2是用scanf()函數的返回值作為停止輸入循環的標誌。而scanf的返回值是輸入成功的變量的個數,只有當一個數字也沒有輸進去的時候才=0。即使輸入0,也是輸入成功的。
所以,輸入0並不能結束輸入。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/238430.html