Java之路(三) 控制执行流程
Java的控制语句设计的关键字有if-else while do-while for return break和switch。
Java虽然保留goto关键字,但不支持goto语句。
1.true和false
所有条件语句都利用条件表达式的真或假来决定执行路径。
Java不允许使用数字作为布尔值使用。
如果想在布尔测试中使用一个非布尔值,如if(a),那么首先必须使用一个条件表达式将其转换成布尔值,如if(a!=0)。
2.if-else语句
else是可选的。
格式:
if(Boolean-expression) statement 或 if(Boolean-expression) //Boolean-expression为真,执行statement1,否则执行statement2 statement1 else statement2 //当然也可以嵌套 if(Boolean-expression1) statement1 else if(Boolean-expression2) statement2 else statement3
注意,上面的Boolean-expression必须产生一个布尔结果。
3.迭代
1)while
while(Boolean-expression) //Boolean-expression为真,执行statement statement
2)do-while
do statement while(Boolean-expression) //Boolean-expression为真,执行statement
与while唯一区别在于do-while中的语句至少会执行一次。
3)for
for(initialization; Boolean-expression; step) statement
for语句中,先执行initialization语句,然后判断Boolean-expression结果是否为true,为真则执行statement,接下来会执行step,再次对Boolean-expression结果进行判断,如此循环,直到Boolean-expression结果为false。
for中的initialization和step可以是逗号表达式,这也是Java唯一用到逗号操作符的地方。此外,在initialization部分可以对多个同类型的变量进行定义。
4.foreach语法
foreach可以让我们在不必创建int变量来对访问项构成的序列进行计数,它可以自动产生这一项。如下例:
import java.util.* public class ForEachFloat{ public static void main(String[] args){ Random rand = new Random(47); float f[] = new float[10]; for(int i = 0; i < 10; i++) f[i] = rand.nextFloat(); for(float x:f) System.out.println(x); } }
结果如下,for(float x:f)定义了一个float类型的变量x,并将数组f的每个元素一次赋给x。
任何返回一个数组的方法都可以使用foreach。
5.return
return关键词有两个作用:
a.指定一个方法返回什么值;
b.导致当前方法退出,并返回那个值。
6.break和continue
break:强制退出循环,不执行循环中剩余的语句。
continue:停止执行当前的迭代,然后退回循环其实处,开始下一次循环。
7.类似goto
Java没有goto,但具有类似goto的功能,因为都使用“标签”机制。
标签格式为 label:
Java中,标签起作用的唯一地方刚好是迭代语句之前。而在迭代之前设置标签的唯一理由是我们希望在其中嵌套另一个迭代或一个开关。
break和continue关键词通常只中断当前循环,但和标签一起使用,会中断循环,跳转到标签所在位置。
我们举例说明break-label和continue-label的区别,为了说明问题,我故意写了一个死循环。如下:
上图程序的输出说明带标签的continue会跳转到标签的位置,并重新进入紧接着标签后的循环。
从输出的i值也可以看出,i会再次从0开始,说明重新进入了for循环。
下图是break-label的表现:
程序的输出说明带标签的break会中断并跳出标签所指的循环。
8.switch
根据整数表达式的值,switch语句可以从一系列代码中选出一段去执行,属于多路选择。
格式:
switch(integral-selector){ case integral-vallue1: statement; break; case integral-vallue2: statement; break; case integral-vallue3: statement; break; //... default:statement; }
switch会执行case后的integral-value与integral-selector相等的statement。
default在所有integral-value与integral-selector都不等的情况下执行。
integral-selector必须为int或char类型类似的整数值,如果为字符串或者浮点数则switch不工作。
Java之路(三) 控制执行流程的更多相关文章
- 《Java基础复习》-控制执行流程
最近任务太多了,肝哭我了,boom 参考书目:Thinking in Java <Java基础复习>-控制执行流程 Java使用了C的所有流程控制语句 涉及关键字:if-else.whil ...
- Java编程思想之四控制执行流程
程序必须再执行过程中控制它的世界,并做出选择.在Java中,你要使用执行控制语句来做出选择. 4.1true和false 所有条件语句都利用条件表达式的真或假来决定执行路径. Java不允许使用数字作 ...
- java控制执行流程
控制执行流程 欢迎转载,转载烦请注明出处,谢谢. https://www.cnblogs.com/sx-wuyj/p/11177257.html java当中涉及到的关键字包括if-else.whil ...
- 大家一起和snailren学java-(三) 操作符&控制执行流程
“又是新的一周,感觉要学的东西还有好多,加油.由于第三章和第四章内容要总结的不是很多,没太多需要拿出来说的,就整合到一个帖子好了” 操作符 操组符,什么是操作符?其实就是+-*/=&^~| 等 ...
- Netty 源码 NioEventLoop(三)执行流程
Netty 源码 NioEventLoop(三)执行流程 Netty 系列目录(https://www.cnblogs.com/binarylei/p/10117436.html) 上文提到在启动 N ...
- 控制执行流程——(Java学习笔记三)
if-else 控制程序流程最基本的形式 格式: if(boolean - expresion){ statement } 或 if(boolean - expresion){ stateme ...
- [Java编程思想-学习笔记]第4章 控制执行流程
4.1 return 关键字return有两方面的用途:一方面指定一个方法结束时返回一个值:一方面强行在return位置结束整个方法,如下所示: char test(int score) { if ...
- Java中异常发生时代码执行流程
异常与错误: 异常: 在Java中程序的错误主要是语法错误和语义错误,一个程序在编译和运行时出现的错误我们统一称之为异常,它是VM(虚拟机)通知你的一种方式,通过这种方式,VM让你知道,你(开发人员) ...
- Java编程思想学习(四)----第四章:控制执行流程
在Java中,涉及的关键字包括if-else.while.do-while.for.return.break 以及选择语句switch.然而,Java并不支持goto语句(该语句引起许多反对意见,但它 ...
随机推荐
- 'sudo'不是内部或外部命令,,,,的解决办法
[说明] Windows系统从 Vista 版本开始加入了 UAC 机制,这导致没有足够权限的程序无法获取到一些关键资源.在 Linux 下我们可以使用 sudo 命令方便地提升当前程序的执行权限,但 ...
- 前端学习 -- Css -- 高度坍塌问题的产生以及解决
在文档流中,父元素的高度默认是被子元素撑开的,也就是子元素多高,父元素就多高. 但是当为子元素设置浮动以后,子元素会完全脱离文档流,此时将会导致子元素无法撑起父元素的高度,导致父元素的高度塌陷. 由于 ...
- 通用权限管理系统底层更换最新Oracle驱动的方法
通用权限管理系统底层先前访问Oracle数据库时需要客户端安装驱动软件,如下图: 安装完毕还需要一番配置,系统再引用其dll, 现在我们使用了最新的dll 该dll是Oracle出的最新的版本. 通用 ...
- harbor高可用集群配置
目录 说明 双主复制 主从同步 双主复制说明 多harbor实例共享后端存储 方案说明 环境说明 配置说明 安装redis和mysql 导入registry数据库 配置harbor 挂载nfs目录 修 ...
- LAMP平台-wordpress的搭建
LAMP平台-wordpress的搭建 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来 ...
- PAM认证机制详情
PAM(Pluggable Authentication Modules)认证机制详情 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.介绍PAM PAM(Plugga ...
- xmlhttprequest upload
html5 带进度上传 function fileSelected() { var file = document.getElementById('fileToUpload').files[0]; i ...
- Raid 磁盘阵列
raid 原理与区别 raid0至少2块硬盘.吞吐量大,性能好,同时读写,但损坏一个就完蛋 raid1至少2块硬盘.相当镜像,一个存储,一个备份.安全性比较高.但是性能比0弱 raid5至少3块硬盘. ...
- [BZOJ 2299][HAOI 2011]向量 题解(裴蜀定理)
[BZOJ 2299][HAOI 2011]向量 Description 给你一对数a,b,你可以任意使用(a,b), (a,-b), (-a,b), (-a,-b), (b,a), (b,-a), ...
- ZYNQ. DMA基本用法
DMA环路测试 vivadoblock zynq7 + dma +fifo sdk 中可以导入 demo demo 中 默认都是 一个字节8bit数据 的测试程序. 如果是其他长度的数据,不仅要修改数 ...