最近任务太多了,肝哭我了,boom

参考书目:Thinking in Java

《Java基础复习》-控制执行流程

Java使用了C的所有流程控制语句

涉及关键字:if-else、while、do-while、for、return、break

一、true和false

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

Java不允许将数字作为布尔值(某些语言中,真是非零,假是0),原因是因为boolean是一种特殊数据类型,不为数字,也不为字符

二、if-else

几种形式:if 、if-else 、if-else if-else(else if 不为新关键字)

注意的点:书写的形式,作用域

2.1 使用

if(逻辑表达式){
//操作
} if(逻辑表达式){
//操作
}else{
//操作
}

另外还有一种else if

if(逻辑表达式){
//操作
}else if(逻辑表达式){
//操作
}else{
//操作
}

我们看到一个新词汇 else if,这并不是新关键字,而仅仅是else后面紧跟一个新的if语句

三、迭代

while、do-while和for用来控制循环,有时候将它们划分为迭代语句。语句会重复执行,直到起控制作用的布尔表达式得到false(假)的结果为止。同时相对于C语言,Java扩充了foreach遍历

3.1while

while(Boolean-expression){
statement;
}

循环开始时,会计算一次布尔表达式的值,为真就运行,运行完语句后,在每一轮新的循环前都会先判断布尔表达式

3.2do-while

格式:

do{
statement;
}while(Boolean-expression)

在该循环语句中,会先执行一次操作,然后进行判断,为真就继续循环

3.3for

格式:

for(initialization;Boolean-expression;step){
//statement
}

初始化(initialization)表达式、布尔表达式(Boolean-expression),或者步进(step)运算都可以为空。

每次迭代前会测试布尔表达式,若为真就执行循环语句,为假就终止,然后执行for后的语句。

执行步骤:



举例

//输出10个随机数
for(int i=0;i<10;i++){
//字符串在前,+号运算符重载为字符串操作符
System.out.println("随机一次的结果:"+Math.random());
}

该循环用到了Math库中static(静态)方法random(),该方法可以产生**0和1之间(包括0,不包括1)**的一个double值。

3.4逗号操作符

非逗号分隔符!Java中唯一用到逗号操作符的地方就是for循环的控制表达式。在控制表达式的初始化和步进控制部分,可以使用一系列逗号分隔的语句;而且那些语句都会执行。

public class Common {
public static void main(String[] args){
for(int i=0,j=i+1 ; i<5 ; i++, j = i*2 ){
System.out.println("i="+i+"j="+j);
}
}
}

3.5Foreach语法

JavaSE5引入了一种更新的更加简洁的for语法用于数组和容器,即foreach语法,表示不必创建int变量去对由访问项构成的序列进行计数,foreach将自动生产每一项。

举例

public class Common {
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);
}
}
}

3.6return break & continue

return会直接结束方法

break会停止当前所在的循环

continue会直接进入下一轮循环

3.7Java没有goto

goto虽然是Java的保留字,但是goto并没有在Java中使用,goto的滥用会导致很多问题,如结构模糊,混乱,隐藏bug等等。

虽然Java没有使用goto的功能但是Java中也能完成一些类似跳转的操作,这是使用break与continue实现的

break操作停止外部循环

break [flag]; 结束带有[flag]标记层到本层的所有循环。

当break intcast;执行后,被intcast标记的循环也会停止

public class Example{
public static void main(String[] args){
int x= i,j;
intcast: for (i=1;i<=9;i++) {
for (j=1;j<=i;j++) {
if (i>4) {
break intcast;
}
System.out.print("*");
}
System.out.print("\n");
}
}

continue跳转语句

continue[flag]; 我们可以这样理解,在未加flag的情况下,continue进入当前循环的下一轮循环。假如循环有两次及以上,在外层循环加了flag标记后,执行continue flag;的结果是停止当前一轮的循环,持续停止,直到被标记那一层,然后进入被标记一层的下一轮循环。

public class Example{
public static void main(String[] args){
int x= i,j;
intcast: for (i=1;i<=2;i++) {
for (j=1;j<=3;j++) {
if (i=1&&j==2) {
continue intcast;
}
System.out.print(i+","+j);
}
System.out.print("\n");
}
}
/*
输出的结果是
1,1
2,1
2,2
2,3
*/

可以看到少了1,2 1,3这两项,是因为运行到1,2时,运行了continue ,进入了外层循环的下一轮,也就是2,1

3.8switch

switch有时也被划分为选择语句,switch可以根据表达式的值,从一系列代码中选出一段去执行

格式

switch(integral-selector) {
case integral-selector1 : statement1; break;
case integral-selector2 : statement2; break;
case integral-selector3 : statement3; break;
case integral-selector4 : statement4; break; default: statement5;
}

注意:java只能对int和char类型进行选择

这是传统的switch写法,该结构会选择对应的值进行执行对应的语句

break的作用

break在传统写法中,起到了让语句停止的作用,但是break并不是必须的,若没有写break,将继续按顺序执行下去。比如选择器选择在了integral-selector2,那么执行的顺序是statement2->statement3->statement4->statement5,除非中间遇到了break;

《Java基础复习》-控制执行流程的更多相关文章

  1. Java编程思想--控制执行流程

    java控制流程设计的关键字包括if-else,while,do-while,for,return,break,continue以及switch.(go-to) 1.while在迭代之前计算一次布尔表 ...

  2. Thinking In Java 4th Chap4 控制执行流程

    Foreach语法: 例如:float f[]=new float [10]; for(float x:f){/*****/} for(char c:"Afaslkd aslfjala al ...

  3. java控制执行流程

    控制执行流程 欢迎转载,转载烦请注明出处,谢谢. https://www.cnblogs.com/sx-wuyj/p/11177257.html java当中涉及到的关键字包括if-else.whil ...

  4. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

  5. 大家一起和snailren学java-(三) 操作符&控制执行流程

    “又是新的一周,感觉要学的东西还有好多,加油.由于第三章和第四章内容要总结的不是很多,没太多需要拿出来说的,就整合到一个帖子好了” 操作符 操组符,什么是操作符?其实就是+-*/=&^~| 等 ...

  6. Java基础语法(5)-特殊流程控制语句

    title: Java基础语法(5)-特殊流程控制语句 blog: CSDN data: Java学习路线及视频 1.嵌套循环结构 将一个循环放在另一个循环体内,就形成了嵌套循环.其中,for ,wh ...

  7. 《Java基础复习》—常识与入门

    突然发现自己Java基础的底子不到位,复习! 所记知识会发布在CSDN与博客网站jirath.cn <Java基础复习>-常识与入门 一.Java语言的知识体系图 分为三部分 编程语言核心 ...

  8. java基础复习记录

    java基础复习记录(数组.对象.异常) 数组 数组的定义 数组是相同类型数据的有序集合.如:篮球队就是一个数组,队员球服上有号码,相当于索引.通过某一个的某一个号码来确认是某一个队员.数组中索引从0 ...

  9. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

随机推荐

  1. 基于Unix Socket的可靠Node.js HTTP代理实现(支持WebSocket协议)

    实现代理服务,最常见的便是代理服务器代理相应的协议体请求源站,并将响应从源站转发给客户端.而在本文的场景中,代理服务及源服务采用相同技术栈(Node.js),源服务是由代理服务fork出的业务服务(如 ...

  2. 基于JWT实现token验证

    JWT的介绍 Json Web Token(JWT)是目前比较流行的跨域认证解决方案,是一种基于JSON的开发标准,由于数据是可以经过签名加密的,比较安全可靠,一般用于前端和服务器之间传递信息,也可以 ...

  3. Flutter保持页面状态AutomaticKeepAliveClientMixin

    使用bottomNavigationBar切换底部tab,再切换回来就会丢失之前的状态(重新渲染列表,丢失滚动条位置). 解决方法 使用 AutomaticKeepAliveClientMixin 重 ...

  4. 使用ZXingObjC扫描二维码横竖屏对应

    /** 根据屏幕的方向设置扫描的方向 * @author maguang * @param parameter * @return result */ - (void)showaCapture { C ...

  5. mybatis进阶案例之多表查询

    mybatis进阶案例之多表查询 一.mybatis中表之间的关系 在数据库中,实体型之间的关系主要有如下几种: 1.一对一 如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之 ...

  6. 你会无聊到把Administrator用户禁用,并且自己创建的用户搞到消失掉还有Administrator用户被禁吗。。。。。

    2020年3月17日20:07:00 如文章标题哈,就是这么任性,无奈 事件起因:因为要部署项目,并且需要将线上的Oracle数据库导入到本地Oracle数据库中突然发现使用 sqlplus 连接数据 ...

  7. Oracle数据库使用sysdba登陆时出现ORA-01031: insufficient privileges问题

    今天在自己本本上装上了oracle数据库,然而在命令框登录时 用 sqlplus / as sysdba   时却出现了: insufficient privileges问题 原因就是没有加入ora_ ...

  8. (转)协议森林05 我尽力 (IP协议详解)

    协议森林05 我尽力 (IP协议详解) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! IPv4与IPv6头部的对比 我们已经在I ...

  9. 在Windows中像Linux里一样使用CMake和make

    1. 安装GCC环境 1.1 安装MinGW(Minimalist GNU for Windows) 首先下载MinGW,并安装.安装完成之后运行MinGW Installer.界面如下.勾选自己需要 ...

  10. Android NDK JNI 入门笔记-day04-NDK实现Hash算法

    * Android NDK JNI 入门笔记目录 * 开头 前面的学习,我们已经掌握了 NDK 开发的必备知识. 下一步就要多实践,通过创造问题并解决问题,来增加熟练度,提升经验. 日常开发中,经常会 ...