【左京淳的JAVA学习笔记】第四章 迴圈

while及do-while迴圈

文法如下
while (条件式){
执行内容
}

当条件式为true时,会进入迴圈执行内容。

另外一种do-while文法如下
do{
执行内容
}while (条件式)

不管条件如何,总之先执行一次,之后再看条件决定要不要跑迴圈。

来看看範例

class Sample4_1 {  public static void main(String[] args) {    //while文    int count = 5;    while (count != 5 && count > 0){      System.out.println("while    : count = " + count);      count--;    }    //do-while文    count = 5;    do {      System.out.println("do-while    : count = " + count);      count--;    }while (count != 5 && count > 0);  }}

再次提醒,边看文章边练习可以增进学习效率唷。

要执行範例很简单,遵照以下步骤即可:

点选windows的开始,并输入CMD,打开命令提示字元视窗。使用cd指令,移动到範例档所在资料夹。使用javac指令,编译範例的java档案。使用java指令,执行刚刚编译好的class档案。

※遇到中文无法编译问题,请使用以下指令
javac -encoding utf-8 Sample4_1.java

※遇到中文显示乱码问题,请使用以下指令
chcp 950

把常用指令存在文字档里面,可以更方便操作。

上述範例的执行结果如下

do-while    : count = 5do-while    : count = 4do-while    : count = 3do-while    : count = 2do-while    : count = 1

可以发现while迴圈因为条件不符没被执行,然而do-while迴圈因为先执行了一次,后来就符合条件而继续重複执行。

for迴圈

直接看範例吧

class Sample4_2 {  public static void main(String[] args) {    for (int count = 0; count < 5; count++){      System.out.println("count = " + count);    }  }}

执行结果

count = 0count = 1count = 2count = 3count = 4

for迴圈的条件式结构如下:
for(变数赋值;判断式;后处理){
处理内容
}
迴圈执行流程如下:
判断式->true->处理内容->后处理->判断式
判断式->false->跳出迴圈

扩张for迴圈

为了方便读取阵列而开发的语法,範例如下:

class Sample4_3 {  public static void main(String[] args) {    //阵列宣言    char[] array = {'a','b','c','d','e'};    //利用扩张for文逐一读取阵列内容    for (char c : array){      System.out.print(c + " ");    }    System.out.println(); //改行    //使用一般for文的写法    for (int count = 0 ; count < array.length ; count++){      System.out.print(array[count] + " ");    }  }}

宣告一个变数(c),用来承接阵列取出来的值,写起来乾净多了。

执行结果

a b c d ea b c d e

扩张for迴圈除了阵列之外,也可以取用ArrayList类的列表。

迴圈控制

以下几种指令可以用来操纵迴圈。
break; //跳出迴圈 or 跳出指定的迴圈。
continue; //略过剩下的处理,由所在迴圈or指定迴圈的开头继续执行。
替迴圈命名并搭配break或continue使用,即可跳出/移动到指定的迴圈。

来看看範例:

class Sample4_4 {  public static void main(String[] args) {    loop1: //在迴圈前面指定其暱称为loop1    for (int a = 0 ; a < 3 ; a++){      for (int b = 0 ; b < 3 ; b++){        System.out.println("a = " + a + " b = " + b);        if(a == 1 && b == 1){          System.out.println("break被执行了。");          break loop1;        }      }      System.out.println("loop1的后段处理。");    }    loop2:    for (int a = 0 ; a < 3 ; a++){      for (int b = 0 ; b < 3 ; b++){        System.out.println("a = " + a + " b = " + b);        if(a == 1 && b == 1){          System.out.println("continue被执行了。");          continue loop2;        }      }    }  }}

执行结果

a = 0 b = 0a = 0 b = 1a = 0 b = 2loop1的后段处理。a = 1 b = 0a = 1 b = 1break被执行了。a = 0 b = 0a = 0 b = 1a = 0 b = 2a = 1 b = 0a = 1 b = 1continue被执行了。a = 2 b = 0a = 2 b = 1a = 2 b = 2

可以观察看看break和continue的差异
在break后面指定loop1的话,程序就会直接跳出loop1迴圈。
但如果把break后面的loop1拿掉,只会跳出所在(第二层)迴圈,程式会继续进行loop1的后段处理。

以上是第四章 迴圈的学习心得,接下来第五章会介绍class定义及物件的生成、使用。

参考教材: JAVAプログラマSilver SE8 - 山本 道子


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章