文法如下
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);
}
}
要执行范例很简单,遵照以下步骤即可:
※遇到中文无法编译问题,请使用以下指令
javac -encoding utf-8 Sample4_1.java
※遇到中文显示乱码问题,请使用以下指令
chcp 950
把常用指令存在文字档里面,可以更方便操作。
上述范例的执行结果如下
do-while : count = 5
do-while : count = 4
do-while : count = 3
do-while : count = 2
do-while : count = 1
可以发现while回圈因为条件不符没被执行,然而do-while回圈因为先执行了一次,後来就符合条件而继续重复执行。
直接看范例吧
class Sample4_2 {
public static void main(String[] args) {
for (int count = 0; count < 5; count++){
System.out.println("count = " + count);
}
}
}
执行结果
count = 0
count = 1
count = 2
count = 3
count = 4
for回圈的条件式结构如下:
for(变数赋值;判断式;後处理){
处理内容
}
回圈执行流程如下:
判断式->true->处理内容->後处理->判断式
判断式->false->跳出回圈
为了方便读取阵列而开发的语法,范例如下:
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 e
a 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 = 0
a = 0 b = 1
a = 0 b = 2
loop1的後段处理。
a = 1 b = 0
a = 1 b = 1
break被执行了。
a = 0 b = 0
a = 0 b = 1
a = 0 b = 2
a = 1 b = 0
a = 1 b = 1
continue被执行了。
a = 2 b = 0
a = 2 b = 1
a = 2 b = 2
可以观察看看break和continue的差异
在break後面指定loop1的话,程序就会直接跳出loop1回圈。
但如果把break後面的loop1拿掉,只会跳出所在(第二层)回圈,程序会继续进行loop1的後段处理。
以上是第四章 回圈的学习心得,接下来第五章会介绍class定义及物件的生成、使用。
参考教材: JAVAプログラマSilver SE8 - 山本 道子
<<: 【课程推荐】2021/3/13~3/14 软件需求塑模与需求规格文件撰写实务班
Navigation 的用处? 在一个 App 中一定会有很多页面, Navigation 提供简...
对於分散式资料库的高可用性, 在前面【Day 3】分散式系统模型、容错、高可用的後段已经提过衡量的标...
万事起头难 平常的学习方式都是遇到问题才去学、上哪门课学什麽、对哪个主题有兴趣才去学,现在想要有组织...
前言 昨天分享了从Amos老师的YouTube影片练习,虽然练习完之後CSS的观念、切版技巧提升不少...
在那个用记事本写HTML的年代 (讲古时间) 大叔我在1996年五专入学念资管系,一年级就接触到网页...