java基础-控制流程语句
一 前言
周末睡觉好舒服,都不想动了,就想睡睡,晒晒太阳,作者劳碌命还是过来写文章了。基础系列文章已经已经出到控制流程,感觉也挺快的,我很自信全网没都多少系列文章能有我这基础系列写的这么好,易于初学者理解并且知识体系齐全觉得文章不错的可以关注一下作者。控制流程语句的概念其实作者感觉是从工程流程图里面转换过来的,比如是非选择啊,循环执行啊之类都可以用流程图来讲述咯!!!!!!
二 if - else 语句
2.1 if -else
if (如果)- else(否则) 在之前的基础系列三元运算符中有提了一下,if else 怎么理解呢?其实很简单,如果今天天气很好,我就想出门晒晒太阳,否则,我就想在睡在床上。这句话译成 if - else 如下:
if (今天天气很好)
出门晒晒太阳;
else
睡在床上;
从这个示例中我们可以提取中if - else 的结构如下:
if (boolean-expression) {
statement;
}else{
statement
}
我们再将示例写成java代码如下
/**
* @Author lsc
* <p>知识追寻者,if else入门基础系列 </p>
*/
public class IfElse {
public static void main(String[] args) {
// 创建对象
IfElse ifElse = new IfElse();
// 示例true表示今天天气很好
String weather = ifElse.weather(true);
System.out.println(weather);//出门晒晒太阳
// 示例 false表示今天天气不好
String weather1 = ifElse.weather(false);
System.out.println(weather1);//睡在床上
}
/* *
* @Author lsc
* <p> if else 使用入门</p>
* @Param [weather 表示天气的好坏]
* @Return java.lang.String 返回根据天气的好坏,想要做的事
*/
public String weather(boolean weather){
if (weather==true){
return "出门晒晒太阳";
}else {
return "睡在床上";
}
}
}
2.2 if -else if-else
除了if -else语句,其还支持 if - else if - else ,其中else 是可以不写(但不建议这么做,逻辑不是很严谨),中间的 else if 表示 之前的语句if 不成立,就判断 else if 中的条件,如果成里就执行表达式;理论上讲 else if 是 可以无限个;一个简单的示例 如下: 如果手很冰,就戴上手套;如果脚很冰,就穿上棉袜,如果脖子很冰,就裹上围巾, 否则 便装出门;
将这个示例改写成 if -else if-else 逻辑如下:
if (手很冰) {
戴上手套;
}else if (脚很冰) {
穿上棉袜;
} else if (脖子很冰) {
裹上围巾;
}else {
便装出门;
}
将上面的示例提取成if -else if-else 结构如下:
if (boolean- expression) {
statement;
} else if (boolean- express){
statement;
} else if (boolean- express){
statement;
}
..........
else {
statement;
}
将示例写成java代码如下:
public static void main(String[] args) {
// 创建对象
IfElse ifElse = new IfElse();
// 1 表示手冷
String keepWarm1 = ifElse.keepWarm(1);
// 2 表示脚冷
String keepWarm2 = ifElse.keepWarm(2);
// 3 表示 脖子冷
String keepWarm3 = ifElse.keepWarm(3);
// 知识追寻者:[戴上手套][穿上袜子][裹上围巾]
System.out.println("知识追寻者:"+keepWarm1+keepWarm2+keepWarm3);
}
/* *
* @Author lsc
* <p> 根据身体部分的是否冷,进行穿戴动作, </p>
* @Param [whichCold 表示哪里冷]
* @Return java.lang.String
*/
public String keepWarm(int whichCold){
// if 表达式中只有为真才会进入语句体
if (whichCold==1){
return "[戴上手套]";
}else if(whichCold==2){
return "[穿上袜子]";
}else if (whichCold==3){
return "[裹上围巾]";
}else {
return "便装出行";
}
}
三 switch 语句
switch 语句 其实跟 if - else 语句 有点类似,其是一个多分支结构语句,有的书籍将其归为选择语句也没错,我们将上面的示例 改写为 switch 逻辑如下
switch (哪里冷) {
case 手冷 :
戴上手套;
break;
case 脚冷:
穿上袜子;
break;
case 脖子冷:
裹上围巾;
break;
default :
便装出行;
}
将 上面的逻辑提炼出 switch语句结构如下:case 表示 情况,expression如果与 value 对于 就会执行 语句statement,break表示跳出循环,在switch 语句中表示会跳转至switch结尾退出 switch语句;如果每个语句中忽略了break(不是很有经验的程序员会哭的),那么语句会一直执行,直到遇到第一个break语句才会结束switch语句,所以初学者在学习的时候谨记每个case语句后面带上break语句
switch (expression) {
case value1 :
statement;
break;
case value2;
statement;
break;
.......................
default :
statement;
}
将上面的示例转为java代码如下:
/**
* @Author lsc
* <p> switch 语句 </p>
*/
public class SwitchZ {
public static void main(String[] args) {
// 创建对象
SwitchZ switchZ = new SwitchZ();
// 1 表示手冷
String keepWarm1 = switchZ.keepWarm(1);
// 2 表示脚冷
String keepWarm2 = switchZ.keepWarm(2);
// 3 表示 脖子冷
String keepWarm3 = switchZ.keepWarm(3);
// 知识追寻者:[戴上手套][穿上袜子][裹上围巾]
System.out.println("知识追寻者:"+keepWarm1+keepWarm2+keepWarm3);
}
public String keepWarm(int whichCold){
String keepWarm = "";
switch (whichCold){
case 1:
keepWarm += "[戴上手套]";
break;
case 2:
keepWarm += "[戴上手套]";
break;
case 3:
keepWarm += "[裹上围巾]";
break;
default:
keepWarm += "[便装出行]";
}
return keepWarm;
}
}
四 循环语句
循环语句故名思意,就是在表达式为真的情况下会循环一直执行语句体。
4.1 while 语句
以一个非常好玩的小学生示例描述一下:小学生作业没写,老师要处罚小学生抄《小白兔小白兔》一文 20 遍;
while (小学生抄了《小白兔小白兔》次数小于20次){
小学生抄《小白兔小白兔》;
}
我们将其提炼出while语句结构如下:
while (boolean-expression) {
statement;
}
将示例写为java代码的while语句如下:
public static void main(String[] args) {
// 表示罚抄的次数
int number = 0;
while (number<20){
number++;
System.out.println("小学生被老师罚抄《小白兔小白兔》次数:"+number);
}
}
输出结果:
小学生被老师罚抄《小白兔小白兔》次数:1
小学生被老师罚抄《小白兔小白兔》次数:2
小学生被老师罚抄《小白兔小白兔》次数:3
小学生被老师罚抄《小白兔小白兔》次数:4
小学生被老师罚抄《小白兔小白兔》次数:5
小学生被老师罚抄《小白兔小白兔》次数:6
小学生被老师罚抄《小白兔小白兔》次数:7
小学生被老师罚抄《小白兔小白兔》次数:8
小学生被老师罚抄《小白兔小白兔》次数:9
小学生被老师罚抄《小白兔小白兔》次数:10
小学生被老师罚抄《小白兔小白兔》次数:11
小学生被老师罚抄《小白兔小白兔》次数:12
小学生被老师罚抄《小白兔小白兔》次数:13
小学生被老师罚抄《小白兔小白兔》次数:14
小学生被老师罚抄《小白兔小白兔》次数:15
小学生被老师罚抄《小白兔小白兔》次数:16
小学生被老师罚抄《小白兔小白兔》次数:17
小学生被老师罚抄《小白兔小白兔》次数:18
小学生被老师罚抄《小白兔小白兔》次数:19
小学生被老师罚抄《小白兔小白兔》次数:20
4.2 do while 语句
do- while 语句和 while 语句之间的最大区别就是无论 表达是是否为真,都会执行 do 语句体一次;
do - while 结构如下:
do {
statement;
} while (boolean-expression)
将示例写为java代码的do-while语句如下:
public static void main(String[] args) {
// 表示罚抄的次数
int number = 0;
do {
number++;
System.out.println("小学生被老师罚抄《小白兔小白兔》次数:"+number);
} while (number<20);
}
4.3 for循环
for 循环使用流程图画出来可以说非常的恰当!有兴趣的读者可以将for循环的结构使用流程图画出来;
for 语句结构如下:
for ( Initial value; boelean-exepression; step ) {
statement;
}
将示例写为java代码的for 语句如下:
public static void main(String[] args) {
for (int number =0; number<20; number++){
System.out.println("小学生被老师罚抄《小白兔小白兔》次数:"+number);
}
}
注意这里输出的将是 0.......19;其执行判断步骤如下,可以看见 number =0只在变量初始化的时候执行一次;后面都会判断number是否小于20,是就执行循环体,然后再将number值加1,重复执行直到number值为20的时候退出;
- numer = 0;
- number < 20 成立
- 控制台打印
- number +1
- number < 20 成立
- 控制台打印
- ..............
- 直到 number =20 时结束;
4.4 高级for循环 for-each
java5提供一个新特性就是高级for循环,这种方式用于迭代数组集合,可以不按照for循环的标准流程执行;从下面语句中可以看出 number 是 int 数组的每一项,所以 number 是 int 类型;执行语句的时候会从 int 数组 numberArray中拿值赋值给 number ,如果 numberArray 中的值被拿走一次,那么数组的下标索引就会加1,直到数组被遍历完成;送你一句话:不断的索取,只会竭泽而渔,当可持续发展,不断薅羊毛;
public static void main(String[] args) {
// int数组,如果是初学者请留个印象,不必深究
int[] numberArray = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
for (int number : numberArray) {
System.out.println("小学生被老师罚抄《小白兔小白兔》次数:"+number);
}
}
4.5 死循环
死循环意指会一直执行循环体,这是个很消耗内存的操作;下面代码中小学生就会一直被罚抄,直到抄到精疲力竭,甚至死亡,嗯很可怜的。想想程序这样执行是不是也跟人一样,会不断的消耗内存,最后内存奔溃,宕机。用这个死循环给你总结个话:世间没用永恒的诺言,只是耐心没被消磨完罢了;所以生活中多点宽容,活的会更好点,莫强求!
for 死循环示例:
public static void main(String[] args) {
for (;;){
System.out.println("小学生被老师罚抄《小白兔小白兔》");
}
}
while死循环示例:
public static void main(String[] args) {
while (true){
System.out.println("小学生被老师罚抄《小白兔小白兔》");
}
}
五 continue语句
continue 语句通常用在循环中,表示跳过循环一次;
示例:
public static void main(String[] args) {
// int数组,如果是初学者请留个印象,不必深究
int[] numberArray = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
for (int number : numberArray) {
// 如果 number 小于 15 将每次都会跳过循环
if (number<15){
continue;
}
System.out.println("小学生被老师罚抄《小白兔小白兔》次数:"+number);
}
}
执行结果如下:
小学生被老师罚抄《小白兔小白兔》次数:15
小学生被老师罚抄《小白兔小白兔》次数:16
小学生被老师罚抄《小白兔小白兔》次数:17
小学生被老师罚抄《小白兔小白兔》次数:18
小学生被老师罚抄《小白兔小白兔》次数:19
小学生被老师罚抄《小白兔小白兔》次数:20
六 breek 语句
break语句 表示跳出循环,很多书籍跟文章写的是终止循环其实是不够准确的,我更愿意称呼它是跳出离它最近的循环;
public static void main(String[] args) {
// 表示罚抄次数
int number = 0;
while (true){
number++;
if (number>5){
// 跳出循环
break;
}
System.out.println("小学生被老师罚抄《小白兔小白兔》次数:"+number);
}
}
七 总结
本篇的控制流程语句可以说是非常基础,很适合初学者学习,其中continue,break 语句还有标签的用法,其会跳到标签的位置的循环而不是跳出最近循环,使用的场景是在多层嵌套的情况下跳至外循环,想要深入学习的读者可以自行研究。初学者可以根据学习的知识写一个斐波那契数列;

java基础-控制流程语句的更多相关文章
- Java基础—控制流程语句(条件语句与循环结构)
与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流程.Java的控制流程结构与C和C++的控制流程机构一样,只有很少的例外情况.没有goto语句,但break语句可以带标签,可以利用它实 ...
- java基础59 JavaScript运算符与控制流程语句(网页知识)
1.JavaScript运算符 1.1.加减乘除法 加法:+(加法,连接符,正数) true是1,false是0 减法:- 乘法:* 除法:/ 1.2.比较运算符 ...
- 【JAVA零基础入门系列】Day8 Java的控制流程
什么是控制流程?简单来说就是控制程序运行逻辑的,因为程序一般而言不会直接一步运行到底,而是需要加上一些判断,一些循环等等.举个栗子,就好比你准备出门买个苹果,把这个过程当成程序的话,可能需要先判断一下 ...
- Java基础-程序流程控制第二弹(循环结构)
Java基础-程序流程控制第二弹(循环结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 流程控制有三种基本结构:顺序结构,选择结构和循环结构.一个脚本就是顺序结构执行的,选择结 ...
- Java基础-程序流程控制第一弹(分支结构/选择结构)
Java基础-程序流程控制第一弹(分支结构/选择结构) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.if语句 1>.if语句的第一种格式 if(条件表达式){ 语句体: ...
- “全栈2019”Java第二十二章:控制流程语句中的决策语句if-else
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- java(运算符,控制流程语句,函数 )
运算符 数据类型转换: 小数据类型-------->大数据类型(自动类型转换) 大数据类型--------->小数据类型(强制类型转换) 强制类型转换的格式: 小数据类型 变量名 = ( ...
- JavaScript(三)---- 控制流程语句
常用的控制流程语句有判断语句.分支语句.循环语句.基本用法都和java中的一致,switch有几点特殊. 1.判断语句 格式: if(判断条件){ 符合条件执行的代 ...
- JAVA基础——Switch条件语句
JAVA基础——switch 条件语句 switch语句结构: switch(表达式){ case值1: 语句体1: break: case值2: 语句体2: break: case值3: 语句体3: ...
随机推荐
- ansible on aws linux 2
1. 安装epel yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 2. 安 ...
- 快速搭建 SpringCloud 微服务开发环境的脚手架
本文适合有 SpringBoot 和 SpringCloud 基础知识的人群,跟着本文可使用和快速搭建 SpringCloud 项目. 本文作者:HelloGitHub-秦人 HelloGitHub ...
- Redis面试题详解:哨兵+复制+事务+集群+持久化等
Redis主要有哪些功能? 1.哨兵(Sentinel)和复制(Replication) Redis服务器毫无征兆的罢工是个麻烦事,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. ...
- Golang 入门系列(十六)锁的使用场景主要涉及到哪些?读写锁为什么会比普通锁快
前面已经讲过很多Golang系列知识,感兴趣的可以看看以前的文章,https://www.cnblogs.com/zhangweizhong/category/1275863.html, 接下来要说的 ...
- python3 之 文件read方法(read、readline、readlines)
目录 一.read方法 二.readline方法 三.readlines方法 正文 python3中,读取文件有三种方法:read().readline().readlines(). 此三种方法,均支 ...
- 23种GoF设计模式概述
23种GoF设计模式概述 在前面,我们对 GoF 的 23 种设计模式进行了分类,这里先对各个设计模式的功能进行简要介绍,以便有个大概了解.后面的章节再进行详细介绍. 创建型模式 关注于怎么创建对象的 ...
- /etc/security/limits.conf 详解与配置
目录 一. /etc/security/limits.conf 详解 /etc/security/limits.conf 配置解析 /etc/security/limits.d/ 目录 二. ulim ...
- C#异步案例一则
场景 生产者和消费者队列, 生产者有多个, 消费者也有多个, 生产到消费需要异步. 下面用一个Asp.NetCore Web-API项目来模拟 创建两个API, 一个Get(), 一个Set(), G ...
- JDK API1.6常用方法
一.String类 常见用法 : (String类代表字符串,JAVA程序中的所有字符串字面值(如“abc”)都作为此类的实例实现,字符串是常量,他们的值在创建之后不能更改,字符串缓冲区支持可变的字符 ...
- 教你如何关闭IIS服务
由于IIS服务器和Apache的默认端口号都是80端口,有时我们需要关闭IIS服务,下面讲讲关闭IIS服务的方法. 方法如下: 1.services.msc,在里面找到一个“World Wid ...