任何的循环结构(while | for | do...while)都离不开4个必要因素:
1) 控制变量;
2) 变量初值;
3) 变量增值;
4) 终止条件。
对于for结构来说,通过break或continue进行不带label的跳出或继续:
continue不可避免的要进行变量增值,要不死循环,有点类型while结构中末尾必须的变量增值;break直接跳出,控制变量的值为跳出时的赋值。
对于带label的for结构来说:
continue只对label那个循环进行变量增值;break直接跳出。
public class BreakTest {
public static void main(String[] args) {
String output = "";
int count;
for (count = 1; count <= 10; count++) {
if (count == 5)
break;
output += count + " ";
}
output += "\nBroke out of loop at count = " + count;
JOptionPane.showMessageDialog(null, output);
System.exit(0);
}
}
Code
import javax.swing.JOptionPane;
public class BreakTest {
public static void main(String[] args) {
String output = "";
int count;
for (count = 1; count <= 10; count++) {
if (count == 5)
break;
output += count + " ";
}
output += "\nBroke out of loop at count = " + count;
JOptionPane.showMessageDialog(null, output);
System.exit(0);
}
}
import javax.swing.JOptionPane;
public class BreakTest {
public static void main(String[] args) {
String output = "";
int count;
for (count = 1; count <= 10; count++) {
if (count == 5)
break;
output += count + " ";
}
output += "\nBroke out of loop at count = " + count;
JOptionPane.showMessageDialog(null, output);
System.exit(0);
}
}
Code
import javax.swing.JOptionPane;
public class ContinueTest {
public static void main(String[] args) {
String output = "";
int count;
for (count = 1; count <= 10; count++) {
if (count == 5)
continue;
output += count + " ";
}
output += "\nUsed continue to skip printing 5";
JOptionPane.showMessageDialog(null, output);
System.exit(0);
}
}
import javax.swing.JOptionPane;
public class ContinueTest {
public static void main(String[] args) {
String output = "";
int count;
for (count = 1; count <= 10; count++) {
if (count == 5)
continue;
output += count + " ";
}
output += "\nUsed continue to skip printing 5";
JOptionPane.showMessageDialog(null, output);
System.exit(0);
}
}
推算下面程序的结果!
Code
public class LabeledFor {
public static void main(String[] args) {
int i = 0;
outer:// Can't have statements here
for(; true ;) { // infinite loop
inner: // Can't hava statements
for(; i < 10; i++) {
System.out.println("i = " + i);
if(i == 2) {
System.out.println("continue");
continue;
}
if(i == 3) {
System.out.println("break");
i++; // Otherwise i never gets increamented.
break;
}
if(i == 7) {
System.out.println("continue outer");
i++;// Otherwise i never gets increamented.
continue outer;
}
if(i == 8) {
System.out.println("break outer");
break outer;
}
for(int k =0; k < 5; k++) {
if(k == 3) {
System.out.println("continue inner");
continue inner;
}
}
}
}
}
}
public class LabeledFor {
public static void main(String[] args) {
int i = 0;
outer:// Can't have statements here
for(; true ;) { // infinite loop
inner: // Can't hava statements
for(; i < 10; i++) {
System.out.println("i = " + i);
if(i == 2) {
System.out.println("continue");
continue;
}
if(i == 3) {
System.out.println("break");
i++; // Otherwise i never gets increamented.
break;
}
if(i == 7) {
System.out.println("continue outer");
i++;// Otherwise i never gets increamented.
continue outer;
}
if(i == 8) {
System.out.println("break outer");
break outer;
}
for(int k =0; k < 5; k++) {
if(k == 3) {
System.out.println("continue inner");
continue inner;
}
}
}
}
}
}