C語言中怎么讓while語句內的if語句反復判斷?就是說,如wh? 愛問知
問題在此: if(X=1)//把賦值操作符當成相等操作符了 如果你想 X 等于時才執行 If 語句的內容則改為 if(X==1) //不等是 if(X!=1) ----------------------------------------------- 讓每次循環都判斷一次if語句,我的只判斷一次,就以這個結果循環 從你的那段代碼開來,while 是個死循環,而 if 部分的代碼總會被執行,因為 (X=1) 結果總不等于 0。
讓每次循環都判斷一次if語句,我的只判斷一次 注意:每一次循環,IF 語句都會執行判斷然后根據條件結果值是否為真來執行 if 語句的內容。也即是說無論IF 語句所包含的代碼是否有被執行,if總會先執行條件判斷。
------------------------------------------------------ 如果想避免在條件判斷中把相等比較誤寫為賦值,你可以這樣寫判斷代碼 如:if(1==x) 如果此時你把 == 寫為 = ,即 1 = x, 那就會產生編譯錯誤。
c語言程序中while循環語句中有兩個if條件語句,兩個條件語句中都有延
while (i <= 100) { if (i == 50) { Sleep(1000); break; } if (i != 50) Sleep(2000); i++;}兩個 if 語句,不管程序會不會執行者兩個 if 語句,程序都會在一次循環中檢查兩個 if 語句,而不會一定執行這兩個語句,如上所述,兩個 if 語句在一個 while 循環中并不會同時執行,上述代碼中的第二個 if 語句完全可以使用 else代替,但是為了保持你問題的效果,我用了 if 語句,兩個產生效果是相同的。
總之:1. if 語句不會同時執行,你可以將條件同時寫入 if 語句分參數中來達到同時執行的目的。2. 在循環中的 if 語句,不論有幾個 if 語句,編譯器都會檢查這幾個 if 語句而非執行,如你所知,只有當條件判斷符合是才會執行 if 語句。
關于while和if語句的正確格式
Private Sub Command1_Click()
Dim n As Integer, i As Integer
n = Val(*)
i = 2
swit = 0
While i <= Sqr(n)
If n Mod i = 0 Then
swit = 1 '注意,這時候必須退出While循環,否則就死循環了,因為i值不再變化了
i = n '只要把i設為一個大于Sqr(n)的值即可強制退出循環,這里用了最簡單的n
Else
i = i + 1
End If
Wend
If swit = 0 Then
*n = "是素數"
Else
*n = "不是素數"
End If
End Sub
其實用For循環更簡單:
Private Sub Command1_Click()
Dim n As Integer, i As Integer
n = Val(*)
For i = 2 To Sqr(n)
If n Mod i = 0 Then Exit For
Next
If i > Sqr(n) Then
*n = "是素數"
Else
*n = "不是素數"
End If
End Sub
轉載請注明出處華閱文章網 » whileif語句語句