分享
 
 
 

JAVA程序员必读:基础篇(2.c)语言基础

王朝java/jsp·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

语言基础

3.4 控制流程语句

程序使用控制流程语句来有条件地执行语句、循环语句或者跳转到程序中的其它部分执行语句。这节教程介绍怎样利用比如if-else和while来控制你的程序流程。

当你编写程序的时候,你在文件中键如语句。假如你没有使用控制流程语句,编译器将以从左到右、从上到下的顺序执行这些语句。你可以在你的程序中使用控制流程语句来有条件地执行语句、来重复执行语句块地代码、改变程序执行的顺序等等。比如,在下面的代码段中,if语句就有条件执行了括号中的System.out.PRintln,这里的条件是Character.isUpperCase(aChar)的返回值:

char c;

...

if (Character.isUpperCase(aChar)) {

System.out.println("The character " + aChar + " is upper case.");

}

java编程语言提供了几个控制流程语句,在下表给出了:

3.4 控制流程语句

控制流程语句的基本格式为:

控制流程语句描述

{

语句(参数)

}

假如块中只有一条语句,大括号{和}并不是必要的。但是这里推荐使用{和},因为代码会更轻易阅读,避免在修改代码的时候发生错误。

控制流程语句有:

while和do-while语句

for语句

if-else语句

switch语句

异常处理语句

分支语句

这里注重,虽然goto是一个保留字,它在C语言中也是一个控制流程语句,但是当前JAVA编程语言还不支持这个goto语句。

好吧,我们开始对各个控制流程语句逐个介绍。

3.4.1 while和do-while语句

你可以使用while语句当条件保持为true的时候,持续执行语句块。While语句的通常语法为:

while (eXPression) {

statement

}

首先,while语句执行表达式,它将返回一个boolean数(true或者false)。假如表达式返回true,while语句执行相应的语句。While语句继续测试表达式并执行块代码直到表达式返回false。

下面给出一个例程WhileDemo,它使用while语句来浏览字符串的各个字符并复制字符串直到程序找到字符g为止:

public class WhileDemo {

public static void main(String[] args) {

String copyFromMe = "Copy this string until you " +

"encounter the letter 'g'.";

StringBuffer copyToMe = new StringBuffer();

int i = 0;

char c = copyFromMe.charAt(i);

while (c != 'g') {

copyToMe.append(c);

c = copyFromMe.charAt(++i);

}

System.out.println(copyToMe);

}

}

最后一行打印出来的数值为:Copy this strin.

3.4.1 while和do-while语句

JAVA编程语言提供了另外一个语句,它跟while语句和相似,即do-while语句。Do-while的语法为:

do {

statement(s)

} while (expression);

不象while语句,do-while语句是先执行循环中的语句后再计算表达式的,所以do-while语句就至少执行一次语句。

下面是对上面的程序利用do-while来修改而得的:

public class DoWhileDemo {

public static void main(String[] args) {

String copyFromMe = "Copy this string until you " +

"encounter the letter 'g'.";

StringBuffer copyToMe = new StringBuffer();

int i = 0;

char c = copyFromMe.charAt(i);

do {

copyToMe.append(c);

c = copyFromMe.charAt(++i);

} while (c != 'g');

System.out.println(copyToMe);

}

}

最后一行打印出来的数值为:Copy this strin

3.4.2 for语句

for语句提供了一个简便的方法来进行循环。For语句的语法如下:

for (初始条件;终止条件;增量) {

语句

}

初始条件是初始化循环的表达式,它在循环开始的时候就被执行一次。而终止条件决定什么时候终止循环。这个表达式在每次循环的过程都被计算。当表达式计算结果为false的时候,这个循环结束。最后,增量是循环一次增加多少(即步长)的表达式。所有的这些都是可选的。实际上,为了实现无限制的循环,这三个表达式都可以省略。

for ( ; ; ) { // 无限制的循环

...

}

下面是一个例程ForDemo,它使用了一个for语句来打印一个数组的所有元素:

public class ForDemo {

public static void main(String[] args) {

int[] arrayOfInts = { 32, 87, 3, 589, 12, 1076,

2000, 8, 622, 127 };

for (int i = 0; i System.out.print(arrayOfInts[i] + " ");}System.out.println();}}这个程序的输出为: 32 87 3 589 12 1076 2000 8 622 127.这里注重你可以在for循环的初始化语句中声明一个本地变量。这个变量的作用域只是在for语句的块中,它可以用在终止条件语句和增量表达式中。假如控制for循环的变量没有用在循环的外部,最好的方法是在初始化表达式中声明这个变量。例如i、j、k等经常用来在for控制语句中,在for循环的初始化表达式中声明它们来限制它们的生命周期以减少错误3.4.3 if-else语句if语句可以使程序根据一些条件有选择地执行语句。举个例子,假如你的程序根据boolean变量DEBUG的值来打印了调试信息。假如DEBUG是true,你的程序就打印出调试信息,比如变量x的数值;或者就不打印。具体的程序如下:if (DEBUG) {System.out.println("DEBUG: x = " + x);}上面是一个简单的if语句的例子。总得说来,if语句的语法格式为:if (表达式) {语句(参数)}假如你想在if判定表达式为false的时候执行不同的语句,你可以使用else语句。举个另外的例子吧,假如你的程序需要执行不同的工作,主要是根据用户是点击OK键还是击警告窗口中的其它按钮。你可以使用if和else语句来实现这个目的:. . .// response is either OK or CANCEL depending// on the button that the user pressed. . .if (response == OK) {// 在这里添加执行OK动作的代码} else {// 在这里添加执行Cancel动作的代码3.4.3 if-else语句假如if部分为false,则执行else块。另外一种else语句的格式是else if,它根据执行另外的表达式执行语句。一个if语句可以跟着任意个else if语句,但只能有一个else语句。下面是一个例程IfElseDemo,它根据测试分数的数值来指定一个等级:90%或者更高为A,80%或者更高为B等等。public class IfElseDemo {public static void main(String[] args) {int testscore = 76;char grade;if (testscore= 90) {grade = 'A';} else if (testscore= 80) {grade = 'B';}else if (testscore= 70) {grade = 'C';} else if (testscore= 60) {grade = 'D';} else {grade = 'F';}System.out.println("Grade = " + grade);}}程序的输出为:Grade = C这时你可以注重到testscore的数值可以满足组合if条件76= 70 and 76= 60,但是当系统处理组合if语句的时候,一旦条件满足,适当的语句就将被执行(grade = 'C';),并且不需要计算剩余的条件控制就跳出if语句。JAVA编程语言支持运算符?:,它是一个简化的if语句。 下面再看看上面教程中的MaxVariablesDemo程序:if (Character.isUpperCase(aChar)) {System.out.println("The character " + aChar + " is upper case.");} else {System.out.println("The character " + aChar + " is lower case.");}下面你可以利用?:运算符来重写这段代码:System.out.println("The character " + aChar + " is " +(Character.isUpperCase(aChar) ? "upper" : "lower") +"case.");假如这个isUpperCase方法返回true,这个?:运算符返回字符串"upper" 。或则,它就返回字符串"lower"3.4.4 switch语句使用switch语句可以根据一个整型表达式有条件地执行语句。下面的例程SwitchDemo,声明了一个整型变量month,它的数值代表了月份。这个程序显示了月份的名字,主要是根据month的数值并且使用了switch语句。public class SwitchDemo {public static void main(String[] args) {int month = 8;switch (month) {case 1: System.out.println("January"); break;case 2: System.out.println("February"); break;case 3: System.out.println("March"); break;case 4: System.out.println("April"); break;case 5: System.out.println("May"); break;case 6: System.out.println("June"); break;case 7: System.out.println("July"); break;case 8: System.out.println("August"); break;case 9: System.out.println("September"); break;case 10: System.out.println("October"); break;case 11: System.out.println("November"); break;case 12: System.out.println("December"); break;}}这个switch语句计算它的表达式,在这个例子中是计算month的数值,然后计算适当的

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有