1樓:匿名使用者
不一定要有。
例如:while n<20 do inc(n);
因為while之後只有一個語句(inc(n)),所以不用begin end;。
如果有多個語句,例如:
while n<20 do
begin
inc(n);
dec(n);
end;
這樣就要有begin end;了。
記住這個,如果while後只有一個語句,那麼begin end可有可無;
如果有兩個或以上語句,那麼需要begin end起括號的作用。
您可以參考這個:
while語句
1.while迴圈的執行形式 while 布林表示式 do 語句
例如:k:=10;
while k>0 do
begin
writeln (k);
k:=k-1
end;
其中(1)while 和do是pascal保留關鍵字,是while迴圈語句的組成部分。
(2)保留關鍵字do後面的“語法”只能是一條語句,稱為“迴圈體”;如果迴圈 體中需要包含多個語句則應該如上例所示,採用一條複合語句。
2.while迴圈的執行功能 當執行到while語句時
(1)求出布林表示式的值
(2)若布林表示式的值為真,則執行迴圈體內的語句;若為“假”,執行步驟4
(3)重複步驟1和2
(4)迴圈結束,執行迴圈後面的語句。
2樓:匿名使用者
不用while *** do 語句
3樓:匿名使用者
如果while迴圈中只有一條語句就可以不用
但如果有多條語句就必須要用
4樓:匿名使用者
如果迴圈體內是多條語句,就必須有。如:
while 條件 do
begin
語句1;
語句2;
……end;
如果迴圈體只有一條語句,就不用了。如:
while 條件 do 語句;
在pascal中,一般情況都是這樣,只要不是一串語句,就可以不加begin和end。但也有特殊,必須有end的,如:
case 變數 of
情況1:語句;
情況2:語句;
……end;//必須有
又如:newtype=record;
a:型別1;
b:型別2;
……end;//必須有
5樓:
那要看你怎麼用了,
我舉兩個例子:
begin
x:=1;y:=4;
while x inc(x); writeln(x); end. 這樣的輸出結果就是 4; 這個whlie迴圈只是迴圈了inc(x)這條語句,若是這個 begin x:=1;y:=4; while x inc(x); writeln(x); end; end. 輸出結果是:23 這個while迴圈就迴圈了inc(x)和writeln(x)兩條語句, 明白了嗎? 6樓:匿名使用者 寫一個while語句試試不就知道了? 忘記了,我所有語句是儘量加begin...end的,清晰,沒歧義 路林嘉金鑫 迴圈當然可以巢狀迴圈.就像if可以巢狀一樣.我覺得可以將最外層的do.while語句改為while 1 守望中的守護 可以。不管是do while還是while都可以巢狀for迴圈,而且可以巢狀任意多個for迴圈。不僅如此,這三種迴圈語句可以任意相互巢狀,個數不限。但是過多的迴圈巢狀 會... 所執行的函式至少執行一次的時候,還有判斷條件需要函式複雜執行的時候。但是編譯連結後在cpu裡面執行效果是一樣的。 這兩種基本上是沒有差別的,但是如果先要執行一次再進行判斷就用do while 單純for 和 while 沒什麼區別。讀取判斷或者不用進行賦予初始值的時候更多用while,比如while... 的確是輸入快取裡面有回車的緣故,那樣就相當於你輸入了兩次,因而輸出連詞錯誤,i也沒減到了1,所以第二次無法輸入。你可已在 printf 錯誤 n 除一樓說的方法外後面寫上fflush stdin 清空輸入快取也可以達到目的 include include void main if a b else ...c語言中dowhile或者while迴圈裡能不能巢狀for迴圈
c語言中什麼時候使用while語句比使用for語句更加
求高手幫我講解下C語言中的while迴圈