更新時間:2022-08-15 07:40:00 來源:動力節點 瀏覽783次
Java while 循環語句是一種控制流語句,它允許基于給定的布爾條件重復執行代碼。while 循環可以被認為是一個重復的 if 語句。
在控制結構的迭代(或重復)類別中,有兩種常用的測試前循環。它們是:while 和 for。
迭代的概念與可能想要重復一個動作有關。像所有控制結構一樣,我們提出一個問題來控制循環的執行。術語循環來自使用流程圖時發生的循環運動。
在大多數編程語言中,問題(稱為測試表達式)是一個布爾表達式。Boolean 數據類型有兩個值——真和假。讓我們重寫結構來考慮這一點:
標志的初始化
當表達式為真時
一些陳述或行動
一些陳述或行動
一些陳述或行動
更新標志
初始化標志
測試表達式
行動或行動
更新
標志的初始化在技術上不是控制結構的一部分,而是在循環開始之前發生的必要項目。英文短語是“當表達式為真時,請執行以下操作”。這是真實的循環。當測試表達式為假時,您停止循環并繼續程序中的下一項。請注意,因為這是循環前的測試,所以 可能不會發生操作。它被稱為循環前的測試,因為測試先于動作。它有時也被稱為預測試循環,這意味著測試是在動作和更新之前(或拉丁語表示之前)。
考慮以下從母親到孩子的單向對話。
孩子:孩子什么也沒說,但媽媽知道孩子早餐吃了麥片,而且歷史告訴我們,孩子很可能把麥片灑在地板上。
媽媽說:“雖然你確實看到(只要你能看到)地板上有一個 Cheerio,但把它撿起來扔進垃圾桶。”
注意:所有元素都存在以確定孩子將要做的動作(或流程)(在這種情況下是重復的)。因為這個問題(你能看到一個 Cheerios)只有兩個可能的答案(真或假),當地板上有 Cheerios 時,動作將繼續。要么孩子 1) 永遠不會撿起 Cheerio,因為他們從來沒有灑過任何東西,或者 2) 撿起 Cheerio 并一次接一個地撿起 Cheerio,而他可以看到地板上的 Cheerio(直到它們都被撿起) .
無限循環
在這一點上,值得一提的是,好的編程總是提供一種方法來確保循環問題最終為假,從而使循環停止執行,程序繼續執行下一行代碼。但是,如果這沒有發生,則程序處于無限循環中。無限循環是一件壞事。考慮以下代碼:
偽代碼無限循環
loop_response = 'y'
而 loop_response == 'y'
輸出“你幾歲?”
輸入用戶年齡
輸出“你朋友的年齡?”
輸入friend_age
輸出“你的年齡加起來是:”
輸出 user_age +friend_age
程序員在循環之前為標志分配了一個值,這是正確的。但是,他們忘記更新標志了。每次詢問測試表達式時,它總是為真。因此,一個無限循環是因為程序員沒有提供退出循環的方法(他忘記更新標志)。考慮以下代碼:
loop_response = 'y';
而 loop_response = 'y'
輸出“你幾歲?”
輸入用戶年齡
輸出“你朋友的年齡?”
輸入friend_age
輸出“你的年齡加起來是:”
輸出 user_age +friend_age
輸出“你想再試一次嗎?y or n”
輸入 loop_response
無論用戶在標志更新期間回復什么,測試表達式都不會進行關系比較而是進行賦值。它將“y”分配給變量并詢問“y”是否為真?由于所有非零值都被視為代表真,因此測試表達式的答案為真。維奧拉,你有一個無限循環。
計數循環
上面的示例適用于事件控制循環。標志更新是某人決定是否希望循環再次執行的事件。通常初始化設置標志,以便循環將至少執行一次。
while 循環的另一個常見用法是作為計數循環。考慮:
計數器 = 0
當計數器 < 5
輸出“我喜歡冰淇淋!”
計數器 += 1
變量 counter 被稱為控制循環。在進入while循環結構之前設置為零(稱為初始化),只要小于5(五);循環動作將被執行。但是循環操作的一部分使用增量運算符將計數器的值增加一。執行循環五次后(一次用于計數器的值:0、1、2、3 和 4),表達式將為 false,程序中的下一行代碼將執行。計數循環旨在執行一組給定次數的動作(可能不止一個語句)。在我們的示例中,消息在監視器上顯示五次。它是通過確保 while 控制結構的所有四個屬性都存在并正常工作來完成的。屬性是:
初始化標志
測試表達式
行動或行動
更新
缺少屬性可能會導致無限循環或產生不希望的結果(無法正常工作)。
無限循環
考慮:
計數器 = 0;
而計數器 < 5
輸出“我喜歡冰淇淋!”
缺少標志更新通常會導致無限循環。
計數的變化
在下面的示例中,整數變量 age 被稱為控制循環(即標志)。我們可以假設年齡在程序前面提供了一個值。因為while結構是循環前的測試;有可能這個人的年齡是 0(零)并且我們第一次測試表達式時它會是假的,并且循環的動作部分永遠不會被執行。
雖然 0 < 年齡
輸出“我愛糖果!”
年齡 -= 1
假設 age 和 counter 都是整數數據類型并且 age 具有值,請考慮以下變體:
計數器 = 0;
而計數器 < 年齡
輸出“我喜歡玉米片!”
計數器 += 1
這個循環是一個計數循環,類似于我們的第一個計數循環示例。唯一的區別是我們的表達式中沒有使用文字常量(即 5),而是使用變量 age(以及存儲在 age 中的值)來確定執行循環的次數。然而,與我們的第一個計數循環示例不同,它總是會執行 5 次;有可能這個人的年齡是 0(零)并且我們第一次測試表達式時它會是假的,并且循環的動作部分永遠不會被執行。如果大家想了解更多相關知識,可以關注一下動力節點的Java教程,里面有更豐富的知識等著大家去學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習