本章内容主要为Java程序控制,包括:循环控制、判断控制和跳转控制。
循环控制:
循环从字面理解就是重复做某一件事,在程序中当某一条件成立时,程序重复执行一条或多条语句,直到循环条件不成立时结束。循环语句也称为迭代语句,在使用过程中需要小心,死循环不是我们期待的效果。
while循环:
while循环是一种最基本的循环语句,循环条件只接受布尔值(也就是真或假),当条件为真时程序反复执行循环体中的代码,每次循环验证一次条件,当条件为假时退出循环,执行循环题后面的语句。
例:while循环(4.1)
- package net.miqiang;
- public class TestMain {
-
- public TestMain() {
-
- int i = 0;
- while (i < 5) {
- i++;
- System.out.println("number: " + i);
- }
-
- i = 0;
- int j = 20;
- while(i < j){
- i++;
- j--;
- System.out.println("i = " + i + ";/tj = " + j);
- }
- }
-
- public static void main(String[] args) {
- new TestMain();
- }
- }
do-while循环:
刚才我们讲到的while循环,从流程上来说是先判断条件,当条件成立再执行语句。而do-while循环则是先执行语句,再判断条件,可想而知,无论条件是否成立,循环体内的语句都将至少执行一次。
例:do-while循环(4.2)
- package net.miqiang;
- public class TestMain {
-
- public TestMain() {
-
- int i = 0;
- do {
- i++;
- System.out.println("number: " + i);
- } while (i < 5);
-
- i = 0;
- int j = 20;
- do {
- i++;
- j--;
- System.out.println("i = " + i + ";/tj = " + j);
- } while (i < j);
- }
-
- public static void main(String[] args) {
- new TestMain();
- }
- }
for循环:
for循环是使用率较高的一种循环语法,基本格式如下:
- for(initialization; condition; iteration) {
-
- }
initialization:初始化变量,变量为int类型;
condition:控制条件,表达式值为boolean类型;
iteration:迭代部分,最常见的是对变量的++操作或--操作。
注:for循环语法中,只要括号内两个分号“;”存在就能运行,但是程序会陷入死循环。
for循环还可以写成这样:
例:for循环(4.3)
- package net.miqiang;
- public class TestMain {
-
- public TestMain() {
-
- for(int i = 0; i < 5; i++){
- System.out.println("* number: " + i);
- }
-
-
- int i = 0;
- boolean b = true;
- for( ; b; ){
- System.out.println("> number: " + i);
- if(i >= 5){
- b = false;
- }
- i++;
- }
- }
-
- public static void main(String[] args) {
- new TestMain();
- }
- }
例:运用for循环在控制台打印“九九乘法表”(4.4)(本章源码包中)
for-each循环:
自Java5.0后,出现了for-each形式循环,格式如下:
- for ( type itr-var : collection )
- {
-
- }
type:类型;
itr-var:迭代变量名;
collection:需要循环的集合。
例:for-each循环(4.5)
package net.miqiang; import java.util.Vector; public class TestMain { public TestMain() { int [] intArr = {3, 80, 195, 14, 52, 625, 217, 410, 193}; String [] strArr = {"a", "b", "c", "d", "e"}; for(int i : intArr){ System.out.println(i); } for(String str : strArr){ System.out.println(str); } Vector v = new Vector(); for(int i = 0; i < 10; i++){ v.add("Vector_" + i); } for(Object o : v){ System.out.println(o); } } public static void main(String[] args) { new TestMain(); } }
判断语句:
Java提供了两种判断语句,if语句和switch语句。
if语句:
if语句语法如下:
- if ( condition ) {
-
- } else {
-
- }
condition:代表条件表达式,值为boolean类型,当值为true时执行语句1的代码,当值为false时执行语句2中的代码。
if语句可以省略else和其后的语句块。
if语句可以嵌套运算:
- if ( condition1 ) {
- if ( condition2 ) {
-
- } else {
-
- }
- }
if语句还可以支持多条件来选择执行某一操作,由一个if,若干个else if和else构成:
- if ( condition1 ) {
-
- } else if ( condition2 ){
-
- } else if ( condition3 ){
-
- } else {
-
- }
例:if语句(4.6)
- package net.miqiang;
- public class TestMain {
-
- public TestMain() {
-
- int i = 10;
- int j = 5;
- if(i < j){
- i = 0;
- }else{
- j = 0;
- }
- System.out.println("i = " + i + ";/tj = " + j);
-
-
- if(j == 0){
- if(i == 0){
- i++;
- }else{
- j++;
- }
- }
- System.out.println("i = " + i + ";/tj = " + j);
-
-
- if(i < 3){
- System.out.println("i < 3");
- }else if(i < 6){
- System.out.println("i < 6 AND i >= 3");
- }else if(i < 9){
- System.out.println("i < 9 AND i >= 6");
- }else{
- System.out.println("i >= 9");
- }
- }
-
- public static void main(String[] args) {
- new TestMain();
- }
- }
switch语句:
switch语句是多分支选择语句,格式如下:
- switch ( expression ) {
- case value1:
-
- break;
- ……
- case valueN:
-
- break;
- default:
-
- }
switch语句后面括号中的表达式值一定为一个整型或字符型变量,value1~valueN也必须对应为整型或字符型。switch语句执行时使用expression值从value1开始对比,遇到相同值则执行case value后面的语句,碰到break语句停止。如果测试完所有value值都不相等,则执行default后面的语句。
例:某校考试,需要对所有学生成绩进行分组,0~59分为“差组”,60~79分为“良组”,80~100分为“优组”(4.7)(实例在本章源码包中)
跳转控制:
Java提供了三种跳转控制语句,break语句、continue语句和return语句。
break语句:
break语句为跳出语句,除了和switch语句结合使用外,还可以用来跳出循环。
![Java基础学习(04Java程序控制)_第1张图片](http://img.e-com-net.com/image/info8/fd7cde0077cd49ac8d352f42191c2359.gif)
例:break语句(4.8)
- package net.miqiang;
- public class TestMain {
-
- public TestMain() {
-
- int i = 0;
-
- while(true){
- System.out.println("i = " + i + ";");
- i++;
-
- if(i > 10){
- break;
- }
- }
-
- System.out.println("循环已完成!");
- }
-
- public static void main(String[] args) {
- new TestMain();
- }
- }
continue语句:
在循环中碰到了continue语句后,程序将不再执行continue语句之后的语句,改而重新判断循环条件。
![Java基础学习(04Java程序控制)_第2张图片](http://img.e-com-net.com/image/info8/e424216de3e34a899fef0ec418b1ce41.gif)
例:continue语句(4.9)
- package net.miqiang;
- public class TestMain {
-
- public TestMain() {
-
- for(int i = 0; i < 10; i++){
-
- System.out.print("start/t");
-
- System.out.print("i = " + i + ";");
-
- if(i % 2 == 0){
-
- System.out.print("/n");
-
- continue;
- }
-
- System.out.print("/tend/n");
- }
-
- System.out.println("循环已完成!");
- }
-
- public static void main(String[] args) {
- new TestMain();
- }
- }
return语句:
程序中碰到了return语句,程序将不再执行return语句之后的任何语句。
![Java基础学习(04Java程序控制)_第3张图片](http://img.e-com-net.com/image/info8/831dae8b4fa14a11b3e4d54da636741b.gif)
例:return语句(4.10)
- package net.miqiang;
- public class TestMain {
-
- public TestMain() {
-
- for(int i = 0; i < 10; i++){
-
- System.out.println("i = " + i + ";");
-
- if(i > 5){
-
- return;
- }
- }
-
- System.out.println("循环已完成!");
- }
-
- public static void main(String[] args) {
- new TestMain();
- }
- }
本章实例:
编程计算某日期是该年度的第几天,要求判断月与日是否符合日期规范,并需要考虑闰年的二月问题。(4.11)(本章源码包中)
本章源码包下载:
http://download.csdn.net/source/631920