基础篇-1.4Java流程语句的基础
1 条件语句
条件语句,即类似 if...else... 的语句,一个if语句包含了一个布尔表达式,以及一个或多个语句。
if语句语法
if(布尔表达式) {
// 布尔表达式为true时执行的语句块
}
if...else语句语法
if(布尔表达式) {
// 布尔表达式为true时执行的语句块
} else {
// 布尔表达式为false时执行的语句块
}
if...else if...else语句语法
if(布尔表达式1) {
// 布尔表达式1为true时执行的语句块
} else if (布尔表达式2) {
// 布尔表达式1为false,但是布尔表达式2为true时执行的语句块
} else {
// 布尔表达式1和布尔表达式2均为false时执行的语句块
}
注意:若同一个if语句中有多个else if语句,则类似的会有多个布尔表达式来判断,从上到下地依次判断if中的布尔表达式,只要判断到其中有一个布尔表达式为true则进入相应的代码块,而不会在往下判断其他的else if和else语句。
实例演示:
public class MyFirst {
public static void main(String[] args) {
Integer a1 = 2;
Integer a2 = 3;
Integer a3 = 2;
if (a1 == a2) {
System.out.println("进入第一个if结构");
} else if (a1 == a3) {
System.out.println("进入第二个if结构");
} else {
System.out.println("进入最后的if结构");
}
}
}
运行结果是,进入了第二个if结构块执行代码,输出:进入第二个if结构
2 循环结构
顺序结构的程序语句只能被执行一次,但是如果你想要同样的操作执行多次的话,则需要循环结构的语句来实现了。Java中主要有三种循环结构分别是,while循环、do...while循环和for循环。
while循环
先判断布尔表达式,再执行循环内容。
// 若布尔表达式为true,则进入循环块执行循环的内容,而后每一次执行循环内容之前都会判断布尔表达式是否为true,再来决定是否执行循环内容
while(布尔表达式) {
// 循环的内容
}
示例:
public class MyFirst {
public static void main(String[] args) {
Integer start = 1;
Integer end = 5;
while (start <= end) {
System.out.println("当前的start值:" + start);
start++;
}
}
}
循环了5次,输出的值依次如下所示:
当前的start值:1
当前的start值:2
当前的start值:3
当前的start值:4
当前的start值:5
do...while循环
与while循环类似,唯一的区别是,do...while无论如何都会先执行一次循环内容。
// 先执行循环内容,再判断布尔表达式是否为true,以此来决定是否再次执行循环内容
do {
// 循环的内容
} while(布尔表达式);
示例:
public class MyFirst {
public static void main(String[] args) {
Integer start = 1;
Integer end = 5;
do {
System.out.println("当前的start值:" + start);
start++;
} while (start > end);
}
}
虽然 start > end 判断条件不符,但是仍然会先执行一次循环内容,输出结果:
当前的start值:1
for循环
for循环执行的次数是在一开始的时候就已经决定好的。
// 先初始化;再判断布尔表达式是否为true,为true则执行循环内容;最后更新初始化的值,进入下一次循环,判断布尔表达式是否为true。。。
for(初始化; 布尔表达式; 更新) {
// 循环的内容
}
示例:
public class MyFirst {
public static void main(String[] args) {
for (int i=1; i<=5; i++) {
System.out.println("当前循环次数:" + i);
}
}
}
循环了5次,输出结果为:
当前循环次数:1
当前循环次数:2
当前循环次数:3
当前循环次数:4
当前循环次数:5
另外这里扩展一下,Java5引入的主要应用于数组的增强型for循环,示例如下:
public class MyFirst {
public static void main(String[] args) {
int[] arr = {10, 20, 30, 40, 50};
for (int i : arr) {
System.out.println("当前循环所在的数组值:" + i);
}
}
}
循环了5次,输出结果为:
当前循环所在的数组值:10
当前循环所在的数组值:20
当前循环所在的数组值:30
当前循环所在的数组值:40
当前循环所在的数组值:50
break
在循环体中,break是可以跳出当前循环体,继续执行循环以外的语句。
public class MyFirst {
public static void main(String[] args) {
for (int i=1; i<=5; i++) {
// 若i大于2则会跳出循环
if (i > 2) {
break;
}
System.out.println("当前循环次数:" + i);
}
}
}
由于有了break跳出循环的操作,故此处只循环了两次输出:
当前循环次数:1
当前循环次数:2
continue
在循环体中,continue是可以跳过当次循环在continue语句执行后的内容,进入下一次循环。
public class MyFirst {
public static void main(String[] args) {
for (int i=1; i<=5; i++) {
// 若i等于2则会跳过此次循环的内容,直接进入下一次循环
if (i == 2) {
continue;
}
System.out.println("当前循环次数:" + i);
}
}
}
输出如下:
当前循环次数:1
当前循环次数:3
当前循环次数:4
当前循环次数:5
return
return关键字,主要是用于方法的返回,即使是在循环体内也会直接返回,终止次方法继续向下执行。
public class MyFirst {
public static void main(String[] args) {
for (int i=1; i<=5; i++) {
// 若i等于2则会直接终止此方法继续向下执行
if (i == 2) {
return;
}
System.out.println("当前循环次数:" + i);
}
System.out.println("执行完毕!");
}
}
输出如下:
当前循环次数:1
3 switch case语句
switch case语句,主要用于判断某一变量与一系列的值中哪个值相等,则进入该值所在的分支语句块。
switch(变量){
case 值1 :
//语句
break; //可选
case 值2 :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
- 变量的类型一般是int、short、byte、char或String,并且必须case后面的值必须是常量或者字面值。
- break可以有也可以没有,若有break值则会直接跳出switch语句块,否则会在switch语句块中一直执行下去。
- default分支一般在switch语句块的末尾,是可有可无的,不需要break。
- switch case语句执行时,一定是先匹配switch的变量值,若匹配到其中一个case的值则会进入该case的分支,再根据该case分支中是否有break,判断是否继续匹配下一个case或者直接跳出switch语句块。
public class MyFirst {
public static void main(String[] args) {
int a = 2;
switch (a) {
case 1 :
System.out.println("case 1");
break;
case 2 :
System.out.println("case 2");
break;
default:
System.out.println("default");
}
}
}
a变量匹配到2,故直接进入case 2的分支,分支执行完后发现有break就直接跳出switch语句,输入如下:
case 2
感慨
不管是条件语句,还是循环结构,或者switch case语句,都是我们在Java中比较常见,也是必须熟悉的语句。其实不单止是Java,在其他语言中都会大同小异的用到这些语句。
基础篇-1.4Java流程语句的基础的更多相关文章
- Java基础(二)流程语句与数组
Java流程语句详解:https://www.cnblogs.com/jiajia-16/p/6008200.html Java数组详解:https://www.cnblogs.com/jiajia- ...
- Java基础篇(03):流程控制语句,和算法应用
本文源码:GitHub·点这里 || GitEE·点这里 一.分支语句 流程控制语句对任何一门编程语言都是非常重要的,Java中基于流程控制程序执行的不同步骤和代码块. 1.IF条件 IF条件语句会根 ...
- C++入门到理解阶段二基础篇(5)——C++流程结构
1.顺序结构 程序从上到下执行 2.选择结构(判断结构) 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的). C++ 编程 ...
- Spark修炼之道(基础篇)——Linux大数据开发基础:第二节:Linux文件系统、文件夹(一)
本节主要内容 怎样获取帮助文档 Linux文件系统简单介绍 文件夹操作 訪问权限 1. 怎样获取帮助文档 在实际工作过程其中,常常会忘记命令的使用方式.比如ls命令后面能够跟哪些參数,此时能够使用ma ...
- Spark修炼之道(基础篇)——Linux大数据开发基础:第三节:用户和组
本节主要内容 理解用户和组的概念 用户管理 组管理 权限分配 1. 理解用户和组的概念 在第一讲中我们提到.linux是一种多任务.多用户的操作系统,在讲ls -l命令行我们看到例如以下文件具体信息: ...
- java基础-控制流程语句
一 前言 周末睡觉好舒服,都不想动了,就想睡睡,晒晒太阳,作者劳碌命还是过来写文章了.基础系列文章已经已经出到控制流程,感觉也挺快的,我很自信全网没都多少系列文章能有我这基础系列写的这么好,易于初学者 ...
- SQL Server调优系列基础篇(并行运算总结)
前言 上三篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符.联合运算符的优化技巧. 本篇我们分析SQL Server的并行运算,作为多核计算机盛行的今天,SQL Server也会适时调整自 ...
- SQL Server调优系列基础篇(并行运算总结篇二)
前言 上一篇文章我们介绍了查看查询计划的并行运行方式. 本篇我们接着分析SQL Server的并行运算. 闲言少叙,直接进入本篇的正题. 技术准备 同前几篇一样,基于SQL Server2008R2版 ...
- SQL Server调优系列基础篇(联合运算符总结)
前言 上两篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符的优化技巧,本篇我们总结联合运算符的使用方式和优化技巧. 废话少说,直接进入本篇的主题. 技术准备 基于SQL Server200 ...
随机推荐
- barrel shifter, logarthmic shifter and funnel shifter
1,shifter小集合 (1) simple shift 左移或右移补0 (2) arthmetic shift 左移补0,右移补符号位 (3) barrel shifter 桶型,顾名思义,应该头 ...
- 关于iosselectjs插件设置同步值的操作实践
关于移动端选择器的插件选择百度可以搜到很多,之前用过iosselect.js(https://github.com/zhoushengmufc/iosselect)感觉还不错,比mobiscorll. ...
- centos7 搭建 php7 + nginx (2)
安装php php下载地址 # 避免出错,先安装下面 yum install libzip libzip-devel libxml2-devel openssl openssl-devel bzip2 ...
- CF 1281B Azamon Web Services
原题链接:http://codeforces.com/problemset/problem/1281/B 题目大意: 给你两个字符串 s 和 c ,最多经过一次变换,使s的字典序小于c,输出变换后的s ...
- Delphi版俄罗斯方块-前奏
前言 基础知识讲了很多,但是并没有串联起来,所以我最近一直在准备个小项目,但是这个项目的要求不含有数据库部分,也就是数据持久存储的功能,此外不能含有网络功能,它只是对基础知识的一个总结,最后一点是这个 ...
- Python学习day02 - 编程分类和Pycharm和Jupyter的安装
编程语言分类 编程语言是用来和计算机交互的,计算机只认识0和1 机器语言(低级语言) 直接和硬件交互 用0和1和计算机沟通 优点:执行效率最高 缺点:开发效率低 汇编语言直接和硬件交互 优点(相较于机 ...
- 【bzoj 4671】 异或图
题目 神仙题啊神仙题 显然这个东西一脸不可求的样子啊,这种东西我们显然需要搞一个容斥什么的 于是设\(g_i\)表示至少存在\(i\)个联通块(联通块内部的边没有要求,联通块和联通块之间不存在边)的方 ...
- 【neo4j】neo4j Desktop1.1.9,windows 安装
一.neo4j 介绍 Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中.它是一个嵌入式的.基于磁盘的.具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储 ...
- Mybatis编写配置文件时,需要注意配置节点的顺序
mybatis-config.xml配置文件配置时,要注意节点顺序 <properties>...</properties> <settings>...</s ...
- /etc/vimrc配置
[root@guolicheng ~]# cat /etc/vimrc if v:lang =~ "utf8$" || v:lang =~ "UTF-8$" s ...