- Java 9 Programming By Example
- Peter Verhas
- 387字
- 2021-07-02 23:37:33
Loops
The for loop inside the while loop will go through all the elements from the first (indexed with zero in Java) up till the last (indexed with n-1). Generally, the for loop has the same syntax as in C:
for( initial expression ; condition ; increment expression )
block
First, the initial expression is evaluated. It may contain variable declaration, as in our example. The variable j in the preceding example is visible only inside the block of the loop. After this, the condition is evaluated, and after each execution of the block, the increment expression is executed. The loop repeats so long as the condition is true. If the condition is false right after the execution of the initial expression, the loop does not execute at all. The block is a list of commands separated by semicolons and enclosed between the { and } characters.
Instead of { and }, enclosed block Java lets you use a single command following the head of the for loop. The same is true in the case of the while loop, and also for the if...else constructs. Practice shows that this is not something a professional should use. Professional code always uses curly braces, even when there is only a single command where the block is in place. This prevents the dangling else problem and generally makes the code more readable. This is similar to many C-like languages. Most of them allow a single command at these places, and professional programmers avoid using a single command in these languages for readability purposes.
It is ironic that the only language that strictly requires the use of the { and } braces at these places is Perl—the one language infamous for unreadable code.
The loop in the for (int j = 0; j < n - 1; j++) { sample starts from zero and goes to n-2. Writing j < n-1 is the same, in this case, as j <= n-2. We will limit j to stop in the loop before the end of the section of the array, because we reach beyond the index j by one comparing and conditionally swapping the elements indexed by j and j+1. If we went one element further, we would try to access an element of the array that does not exist, and it would cause a runtime exception. Try and modify the loop condition to j < n or j <= n-1 and you will get the following error message:

It is an important feature of Java that the runtime checks memory access and throws an exception in the case of bad array indexing. In the good old days, while coding in C, often, we faced unexplainable errors that stopped our code much later and at totally different code locations from where the real error was. Array index in C silently corrupted the memory. Java stops you as soon as you make a mistake. It follows the fail-fast approach that you also should use in your code. If something is wrong, the program should fail. No code should try to live with or overcome an error that comes from a coding error. Coding errors should be fixed before they cause even more damage.
There are also two more loop constructs in Java: the while loop and the do loop. The example contains a while loop: it is the outer loop that runs so long as there are at least two elements that may need swapping in the array:
while (n > 1) {
The general syntax and semantics of the while loop is very simple, as seen here:
while ( condition ) block
Repeat the execution of the block so long as the condition is true. If the condition is not true at the very start of the loop, then do not execute the block at all. The do loop is also similar, but it checks the condition after each execution of the block:
do block while( condition );
For some reason, programmers rarely use do loops.
- HTML5移動Web開發(fā)技術
- 零基礎學C++程序設計
- 編程的修煉
- MongoDB for Java Developers
- FFmpeg入門詳解:音視頻流媒體播放器原理及應用
- Java從入門到精通(第5版)
- 人臉識別原理及算法:動態(tài)人臉識別系統(tǒng)研究
- 前端架構:從入門到微前端
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- Learning Python Design Patterns
- Arduino家居安全系統(tǒng)構建實戰(zhàn)
- Extending Puppet(Second Edition)
- 西門子S7-200 SMART PLC編程從入門到實踐
- INSTANT Sinatra Starter
- Visual FoxPro 6.0程序設計