复习java基础--执行控制语句--10.25

  就像有知觉的生物一样,程序必须在执行过程中控制它的世界,并作出选择。在java中,你要使用执行控制语句来作出选择。 ——《java编程思想》

在java中,执行控制语句设计的关键字包括,if-else,while,do-while,for,return,break以及选择语句switch。

1、所有的条件语句都利用条件表达式的真假来决定执行路径。

2、if-else。

if(条件表达式){

执行语句1;

}else{

执行语句2;

}

if(条件表达式){

执行语句1;

}else if(条件表达式){

执行语句2;

}else{

执行语句3;

}

来代码展示一下吧:

2、迭代。

while,do-while和for用来控制循环,有时将他们划分为迭代语句,当满足条件时,执行语句会重复执行,直到起控制作用的条件表达式为false时为止。

2.1、首先看while的表达式:

while(条件表达式){

执行语句;

}

只要满足条件表达式为true,我们就执行语句。用代码来看一下吧。

在这里,调用了3次condition(int count)方法,但是while中的执行语句只执行了2次,因为第三次调用时,生成了一个false,停止while循环。

2.2、do-while;do-while表达式为:

do{

执行语句;

}while(条件表达式);

do-while和while的区别在于,他会先去执行一次执行语句再进行判断。

相信这个结果最能展示了,也就是第一次值就是false,但仍然执行了一次count++;

2.3、for

for循环在第一次迭代之前要进行初始化,随后判断条件语句,执行完执行语句后进行一次“步进(step)”操作。for循环格式为:

for(初始化语句; 条件表达式; 步进语句){

执行语句;

}

下面用例子来看一下:

首先这里会初始化i,然后判断i的值是否小于等于10,然后执行一次输出语句,再然后进行i++,再判断,执行,再进行i++,直到不满足判断条件为止。

在这里,我省略了判断条件,也就是说,不进行判断了,默认为true,也就这个循环会一直进行下去。当然,这里的其他两个语句也可以进行省略,初始化语句省略的情况下,在for循环中使用的变量,需要在执行之前进行初始化。

而步进操作被省略的话,也就是说执行完之后我不进行什么改变。

三个条件都不写也可以,但没什么意义,不如用一个while(true)死循环。

练习题1:

产生25个int类型的随机整数,使用if-else语句来判断大于小于等于紧随他生成的随机数

结果:

练习题2:使用两个for循环和取余操作符(%)来探测和打印素数(素数是只能被自身和1整除的整数)

answer1是自己想出来的办法,answer2是网上的一个答案。其实差不多,我的是直接输出,判断b的值来看是不是素数,它的方法为数组标记,是从j=2开始,用j+1的数去判断他之后的数i能否被他整除,如果能被整除,就记录下标为i的数不是素数,也就是a[i]!=0;这样循环次数会少很多。啊~突然在写解析时明白了为什么我的方法会比他的慢了。(当把100修改为10000以内,100000以内时,answer1慢)

 

2.4、foreach语法。

foreach语法也叫增强for循环,用于数组和容器,至于这两个概念,在之后的复习中会详细介绍。foreach语法表示不必再去创建int变量去对由访问项构成的序列进行计数,foreach会自动产生每一项。下面来演示代码。

这里foreach循环定义了一个float类型的x,进而将每一个f的元素赋值给x。

任何一个返回数组的方法都可以使用foreach,比如String类的toCharArray()方法。它返回一个char数组。

2.5、return,break,continue。

     return关键字有两个用法,一方面指定一个方法返回什么值,另一方面会导致当前的方法退出,并返回那个值。

这里当输出到5之后,count变成了6,被我return,中断了这个方法的执行,所以没有继续执行。

这里用return来返回值。

 

break,continue可以在任何迭代语句的主体部分使用,break用于退出循环,不执行循环中剩余的部分,而continue是退出当前的迭代,然后从循环起始处开始下一次迭代。

 

从这里可以看出,当到64之后直接退出了循环,不管是while,for,foreach。

2.5、break,continue完成goto跳转操作。在java中,预留goto为保留字,使用了break,和continue来实现(我是没有看到过这种用法,第一次在书中看到。)这里也用到了标签机制。

标签后面跟有:的标识符。比如: label1 :

如果break,continue和标签一块使用,就会中断循环,知道标签所在的地方,来看代码吧。

 

规则:

1). 一般的continue会退回最内层循环的开头,并继续执行;而带标签的continue会达到标签的位置,并重新进入紧接在那个标签后面的循环。

2).一般的break会中断并跳出当前循环;带标签的break会中断并跳出标签所指的循环。

2.6、 switch-case语句

switch(变量){

case  变量1:

执行语句1;

break;

case  变量2:

执行语句2;

break;

case  变量3:

执行语句3;

break;

case  变量4:

执行语句4;

break;

default:

执行语句5;

break;

}

swtich()变量类型只能是int、short、char、byte和enum类型(JDK 1.7 之后,类型也可以是String了)。当进行case判断时,JVM会自动从上到小扫描,寻找匹配的case。当找不到匹配的case时,执行default。当case语句中都没有写break语句时,会从匹配到的case之后顺序执行,知道执行完毕或者碰到break;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值