Java 程序流程语句
顺序结构
什么是顺序结构:一行一行的执行代码
选择结构 if
什么是选择结构:通过判断条件来做选择的语句,我们称为选择语句或分支语句
定义方式:if语句使用boolean表达式或boolean值作为选择条件,有三种结构形式:
选择结构 if
第一种结构:
if (boolean条件) {
代码/当boolean条件结果为true的时候,就执行这里的代码。
}
注意:
(1)不能写出 if (boolean条件) ; { }
(2)若 if 的语句只有一句话,其实可以省略{},即是如此,最好得写 {}.
(3)对于boolean类型的表达式,不要使用 boolean表达式==true的写法。
选择结构 if-else
第二种结构.
if (boolean条件) {
当boolean条件结果为true的时候,就执行这里的代码.
}
else {
当boolean条件结果为false的时候,就执行这里的代码.
}
if-else结构和三元运算符的区别:
(1)一个是结构,一个运算表达式。
(2)运算表达式的是必须得有一个结果的。
选择结构 if-elseif-else
第三种结构:
if (boolean条件1) {
当条件1为true的时候,执行这里.
}
else if (boolean条件2) {
当条件2为true的时候,执行这里
}
else if (boolean条件3) {
当条件3为true的时候,执行这里
}
else {
上述所有条件,都不满足,就执行这里.
}
如果已经满足条件了,后面的判断就不会执行。
选择结构switch
定义:switch的语法结构(和if-elseif-else的语义相同)
switch (整型表达式) {
case A值:
语句1;
break;
case B值:
语句2;
break;
case C值:
语句3;
break;
default:
上述所有的结果值都不满足
语句.
}
注意点
switch的语法分析以及注意:
(1)switch中的表达式的结果/类型,必须是整数类型。
- 整数类型:byte、short、char、int。没有long。
- 从Java7开始,switch也支持String类型。语法糖,语法糖的背后,其有用的对待 string 类型时候,用的是hashCode() 方法转换的。
public static void main(String[] args) {
String str = "fans";
switch (str) {
case "fans":
System.out.println("fans");
break;
case "leiwen":
System.out.println("leiwen");
break;
default:
System.out.println("default");
break;
}
}
反编译后:
public static void main(String args[]) {
label0: {
String str = "fans";
String s;
switch ((s = str).hashCode()) {
default:
break;
case -1106497712:
if (!s.equals("leiwen"))
break;
System.out.println("leiwen");
break label0;
case 3135424:
if (s.equals("fans")) {
System.out.println("fans");
break label0;
}
break;
}
System.out.println("default");
}
}
(2)switch语句,一旦找到入口,就会进入,并执行功能语句,后面的case不再判断,除非语句break,return 或者执行完成,才会停下来。
(3)多个case 的不能相同。
(4)如果语句有多条语句,要用 { }。break 写在 { } 外面。
int week = 1;
switch (week) {
case 1: {
System.out.println("星期1");
System.out.println("工作日");
}
break;
default:
System.out.println("其它");
break;
}
(5)如果没有写break,就会执行当前条件后面的所有语句,直到遇到break 退出。
(6)default表示,当case中的值都不成立的时候,才执行,可以放在前面,但是要加上break,如果没有加,同样会继续往下执行。如果放在最后,可以省略break,所以一般的放在最后。
循环结构
循环 while
语法:
while (boolean表达式) {
若boolean表达式结果为true,则执行这里循环体
}
注意:先判断boolean表达式。在执行循环体。
循环 do-while
语法:
do {
循环体
} while (boolean表达式);
注意:
- do while,不管boolean表达式对与错,先执行一次循环体。
- 即使boolean表达式为false,do while也会执行一次。
- 推论:无论条件如何,dowhile至少会执行一次。
循环 for
语法:
for (初始化语句; boolean表达式; 循环之后的操作语句) {
循环体
}
初始化语句:定义变量,赋初始值,只会执行一次;
boolean表达式:判断条件,若条件为true,则进入循环体,若为false,则跳过循环。
循环之后的操作语句:变量的自增/自减操作.
执行顺序
(1)初始化语句.
(2)boolean表达式:
- true:GOTO 3
- false:跳过循环,不执行循环体。
(3)执行循环体.
(4)循环之后的操作语句, GOTO 2.
嵌套循环
什么时候要使用嵌套循环?
循环:当一个操作需要重复N次。
嵌套循环:当一个重复的操作,需要执行N次。
结构
一个循环当中嵌套一个循环
注意事项
(1)使用循环嵌套时,内层循环和外层循环的循环控制变量不能相同。
(2)循环嵌套结构的书写,最好采用“右缩进”格式,以体现循环层次的关系。
(3)尽量避免太多和太深的循环嵌套结构。
控制循环结构语句
break语句
结束当前所在的循环。
注意:break之后的语句,执行不到。若编写了,则语法报错。
continue语句
表示跳过的这一次当前循环,继而进行下一次循环。
注意:contine之后的语句,执行不到。若编写了,则语法报错。
return语句
表示结束循环所在的方法,方法都结束了,循环结构自然也就结束了。
控制外层循环
此时就得使用标签了,标签就是给某个循环起的别名,不过该别名得满足标识符的规范。
若要控制外层循环,就在break或continue后面跟上循环的别名就OK了
public static void main(String[] args) {
outter : for (int i = 0; i < 5; i++) {
inner : for (int j = 0; j < i; j++) {
if (i==3) {
break outter;
}
}
}
}
Java 程序流程语句的更多相关文章
- Java程序流程控制
程序流程控制有 选择,循环,以及跳转结构 选择结构中无非就是 If 和 switch语句我两种都做了一些小案例 1. 利用Scanner库来获得控制台用户输入的数字与代码中定义的变量比较 packag ...
- Java程序流程控制:判断结构、选择结构、循环结构
本文内容: 判断结构 if 选择结构 switch 循环结构 while do-while for for each break.continue return 首发时间:2017-06-22 21: ...
- Java程序流程控制之if-else if-else
java基础之流程控制(一) 流程控制 Flow Control : 流程控制语句是编程语言中的核心之一.可以分为 分支语句.循环语句和跳转语句. 本讲内容包括分支语句 ...
- Java 程序流程控制语句
顺序语句 语句:使用分号分隔的代码称作为一个语句 注意:没有写任何代码只是一个分号的时候,也是一条语句,称作空语句 顺序语句就是按照从上往下的顺序执行的语句 Scanner scanner = new ...
- 3.20 总结 java程序流程控制
- 关于Java程序流程控制的整理(已完善)
- 关于Java程序流程控制的整理(未完善)
- Java 基础 程序流程控制 (下)
Java 程序流程控制 (下) 此篇单独对循环结构的知识点进行整理: 之前讲到循环结构分为:for循环,while循环,do...while循环三种最基本的循环结构:在JDK1.5以后的版本还提供了f ...
- Java 基础 程序流程控制 (上)
Java程序流程控制 (上) Java程序大体分为三种流程控制结构:顺序结构.分支结构.循环结构 顺序结构 程序由上到下的逐行执行,中间没有任何跳转和判断语句. 示例代码如下: public clas ...
随机推荐
- shell 脚本总结
一.SHELL脚本是什么?它是必需的吗? 一个SHELL脚本就是一个文本文件,它包含一个或多个命令.系统管理员会经常需要使用多个命令来完成一项任务,此时可以添加这些所有命令在一个文本文件(SHELL脚 ...
- 爬虫之 selenium模块
selenium模块 阅读目录 一 介绍 二 安装 三 基本使用 四 选择器 五 等待元素被加载 六 元素交互操作 七 其他 八 项目练习 一 介绍 selenium最初是一个自动化测试工具,而爬 ...
- Linux sudo(CVE-2019-14287)漏洞复现过程
简述: 该漏洞编号是CVE-2019-14287. sudo是Linux系统管理指令,允许用户在不需要切换环境的前提下用其他用户的权限运行程序或命令,通常是以root身份运行命令,以减少root用户的 ...
- Django:CSRF(Cross-request forgery)跨站请求伪造
一.CSRF是什么 二.CSRF攻击原理 三.CSRF攻击防范 一.CSRF是什么 CSRF(Cross-site request forgery)跨站请求伪造,也被称为“One Click Atta ...
- 个性化召回算法实践(四)——ContentBased算法
ContentBased算法的思想非常简单:根据用户过去喜欢的物品(本文统称为 item),为用户推荐和他过去喜欢的物品相似的物品.而关键就在于这里的物品相似性的度量,这才是算法运用过程中的核心. C ...
- sql index改怎么建
https://stackoverflow.com/questions/11299217/how-can-i-optimize-this-sql-query-using-indexes ------- ...
- UML之关系
学习UML我们首先要掌握他们的关系,UML关系可以分为四类,主要有关联.依赖.泛化和实现. 下面我们就一一来详细说明这几种关系. 关联 表示两个类或类与接口之间强烈的依赖关系,关联用直线表示.当然我们 ...
- java中的strictfp的作用
自Java2以来,Java语言增加了一个关键字strictfp,虽然这个关键字在大多数场合比较少用,但是还是有必要了解一下. strictfp 的意思是FP-strict,也就是说精确浮点的意思.在J ...
- 2018 南京网络预赛Sum - 离线分段打表
题意 设 $f(n)$ 为 $n=ab$ 的方案数,其中 $a,b$ 为无平方因子数. 例如,$f(6)=4$,因为 $6 = 1 \times 6 = 2 \times 3 = 3 \times 2 ...
- [Sdoi2013] [bzoj 3198] spring (hash+容斥原理)
题目描述 给出nnn个666维坐标,求有多少对点对满足恰好mmm个位置相等 1<=n<=1051<=n<=10^51<=n<=105 0<=k<=60& ...