Java核心基础第3篇-Java流程控制
2021/7/12 13:05:47
本文主要是介绍Java核心基础第3篇-Java流程控制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Java流程控制
本章一起来探讨下Java的流程控制语句。主要从以下几个方面展开:
- Java分支语句
- Java循环语句
Java其实和其他任何的开发语言一样,**分支语句和循环语句**是必不可少的,有个这两个功能之后,我们完成类似:
- 判断成绩等级,优秀或者良好
- 完成九九乘法表等相关的操作
一、分支语句
1.1 分支语句简介
- 分支语句根据一定的条件有选择地执行或跳过特定的语句
- 从而来完成根据不同的条件,得到不同的结果,来满足现实生活中的需求
- Java中提供了多种实现分支语句的方式
- 1)
if
: 单分支语句,如果满足进入该语句块 - 2)
if...else
: 如果满足进入该if语句块,否则进入else语句块,二选一 - 3)
if...else if...else if...else
:多分支语句,条件满足进入一个分支,如果都不满足进入 else - 4)
switch...case
: 实现语句块
- 1)
1.2 if单分支语句
if
单分支语句,表示只要条件满足,就会进入语句块内容,否则直接跳过。
上图左侧部分就是表示if
单分支语句
//语法 if(条件表达式){ //如果条件为true,执行到该语句。否则跳过该语句 }
案例:
如果成绩score大于等于90,将grade等级设置有优秀
,否则忽略
public static void main(String[] args) { int score = 91; String grade = ""; if(score>=90) { grade = "优秀"; System.out.println("小明获得鸡腿一只"); } System.out.println("end..."); }
注意:以后代码过程中,注意测试。否则条件特别容易被漏掉
1.3 if…else双分支语句
if...else
称为双分支语句,如果条件满足则进入if
语句块,否则进入else
语句块;
也就是说if
或else
语句块必须会进入其中的一个分支;同时也不存在两个分支同时进入;
如上图右侧,就是if...else
的使用场景
语法:
// 格式 双分支语句 if 或者else 永远进入一个分支 if(条件){ //条件为真,进入 }else{ //否则进入else }
案例:
如果小明成绩不低于90分,奖励一只鸡腿,否则只能吃青菜
public static void main(String[] args) { int score = 89; //注意:以后代码过程中,注意测试。否则条件特别容易被漏掉 if(score>=90) { System.out.println("小明获得鸡腿一只"); }else { System.out.println("小明被罚只能吃青菜"); } System.out.println("end..."); }
1.4 if…else if…else语法
if...else if...else
也被称为多分支语句,可以指定多个条件。
但是能够进入分支的只有一个
语法:
//语法 if(条件){ //满足进入 }else if(条件2){ //满足进入 }else if(条件3){ //满足进入 }else{ //都不满足,进入else }
案例:
不同的条件进入不同的分支,例如:成绩为88,奖励麻辣鸡爪一个
public static void main(String[] args) { int score = 50; // 注意:以后代码过程中,注意测试。否则条件特别容易被漏掉 if (score >= 90) { System.out.println("小明获得鸡腿一只"); } else if (score >= 80) { System.out.println("麻辣鸡爪一个!"); } else if (score >= 60) { System.out.println("奖励练习题一打!"); } else { System.out.println("小明被暴打了一顿"); } System.out.println("end..."); }
注意:如果多个条件同时满足,那么会从上而下,自动匹配。当进入一个分支之后,就不会在进入其他分支。
1.5 switch…case语句
在处理多个选项的时候,除了可以使用if...else
,Java还提供了另外一种分支语句,那就是switch...case
switch
语句将从选项值相匹配的case
标签处开始执行,知道语句结束或者遇到break
关键字
语法结构:
- switch(表达式)中表达式的返回值必须是下述几种类型之一:
int
,byte
,char
,short
,枚举
,字符串
- case子句中的值必须是
常量
,且所有case子句中的值应是不同的; - default子句是最终执行
break
语句用来在执行完一个case分支后使程序跳出switch语句块;
// 给固定的内容 switch(表达式){ case 常量1: //语句块 break; case 常量1: //语句块 break; case 常量1: //语句块 break; default: //语句块:类似else }
案例:
根据不同的值,获取不同的级别
public static void main(String[] args) { int top = 1; switch (top) { case 1: System.out.println("恭喜总冠军!!"); break; case 2: System.out.println("恭喜亚军!!"); break; case 3: System.out.println("恭喜季军!!"); break; case 4: System.out.println("恭喜第四!!"); break; case 5: System.out.println("恭喜第五!!"); break; default: System.out.println("墊底"); } }
注意:
①表达式的值如果和常量的内容保持一致,表示会进入该代码块
②break,跳出当前的语句快,否则会一直往下执行
二、循环语句
2.1 循环语句简介
在满足指定条件下,反复执行特定的代码。
例如:将1-100
之间的和进行累加;
public static void main(String[] args) { int sum = 0; for (int i = 1; i <= 100; i++) { sum = sum+i; } System.out.println("sum=" + sum); }
Java中提供了三种基本的循环:
- for循环
- 1)普通for循环
- 2)增强for循环
- while
- do…while
2.2 for循环
for
循环语句是支持迭代的一种通用结构, 利用每次迭代之后更新的计数器或类似的变量来控制迭代次数
for
一般用来明确循环次数的情况使用,更加的方便
1、循环组成部分:
a.初始化
b.循环条件
c.循环体,循环的内容
d.迭代(改变原来的值)
//语法: for(初始化;条件判断;迭代) { //循环体 具体反复执行的代码 }
2、案例
打印1-100之间的偶数列
for (int i = 1; i <= 100; i++) { if(i%2==0){ System.out.println("i=" + i); } }
3、for执行顺序
- 第一步,对
i
进行初始化为1 - 第二步,判断
i
是否小于100 - 第三步,如果返回
true
,执行对应语句块内容 - 第四步,执行语句块内容,进行迭代,将
i
进行++操作 - 第五步,迭代完毕之后在进行判断,执行
第二步
操作 - 第六步,如果满足继续进入代码块,如果
不满足,则跳出循环
2.3 while循环
当条件为 true 时,while 循环执行一条语句(也可以是一个语句块)。一般格式为
语法格式(先判断,再执行): [初始值] while(条件) { //语句块 // 迭代[更改初始值] }
如果开始循环条件的值就为 false, 则 while 循环体一次也不执行
案例:
将1-100之间的和进行累加操作
public static void main(String[] args) { int result = 0; int i = 1; while (i <= 100) { // 判断条件 // 语句块 result += i; System.out.println("i=" + i + " result=" + result); i++; } }
2.4 do…while
如果希望循环体至少执行一次, 则应该将检测条件放在最后。 使用 do/while 循环语句可以实现这种操作方式;
while
和do...while
最大的区别就是:
- while:先判断,再执行
- do…while:先执行,再判断,所以do…while至少都会执行一次
语法格式:
语法格式:(先执行,在判断:不管条件如何,都会至少执行一次) [初始化内容] do{ //语句块 [迭代] }while(判断条件);
案例:
将1-100之间的和进行累加操作
public static void main(String[] args) { int result = 0; int i = 1; do { result += i; System.out.println("i=" + i + " result=" + result); i++; } while (i <= 100); }
2.5 中断循环
Java提供了continue
和break
关键字用来终止循环继续执行。
continue
用来终止本次循环,该continue
关键字后面的所有内容都不会被执行;然而continue
会迭代,然后执行下一次循环;break
用来跳出当前所在的循环,属于该循环下所有的内容都会终止执行;
以下是两者的使用注意事项:
- break只能用于switch语句和循环语句中。
- continue 只能用于循环语句中。
- 标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。
- break和continue之后不能有其他的语句,因为程序永远不会执行break 和 continue之后的语句。
案例:
当i=5是,使用不同关键字,所得到结果
for (int i = 1; i <= 10; i++) { if (i == 5) { //break; //1 2 3 4 continue; //1 2 3 4 6 7 8 9 10 } System.out.println("continue==>i = " + i); }
2.6 嵌套循环
public static void main(String[] args) { // 1. 外层: 控制行数 1-9行 // 2.内层 :控制每一行 有多少个列(需要计算多杀次) for (int i = 1; i <= 9; i++) { // aa:标号 使用:分割 必须写在循环的头部 for (int j = 1; j <= i; j++) { System.out.print(j + "*" + i + "=" + (j * i) + "\t"); } System.out.println(); // 换行 } }
三、实战题
第1题: 实现一个查询月天数的程序键盘输入年月 判断这年这个月有多少天。<闰年条件:能被4整除且不能被100整除或者能被400整除> 第2题: 国家税务局规定不同行业的税收数额度不一样 税收=(工资-起征点)*税率 行业有 1.服务行业 2.制造业 3.农业 1.服务行业税收的起征点是2000 元 2000元以上需要缴纳10%的个人所得税 2.制造业税收的起征点是3000元 3000元以上需要缴纳5%的个人所得税 3.农业税收的起征点是1500元 1500元以上需要缴纳2%的个人所得税 提示用户选择行业,输入工资 ,输出税后工资。 第三题: 运费计算器:运输公司对用户计算运费.路程越远每公里运费越低.每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公式为 f=p*w*s*(1-d) s<250没有折扣 250<=s <500 2%折扣 500<=s<1000 5%折扣 1000<=s<2000 8%折扣 2000以上 15%折扣。 第四题: 编写一个某年第一天是星期几的查询器:程序输出:XXXX年一月一日是 星期X 提示:1900年一月一日是星期一 第五题: 根据流程图完成银行取钱业务程序
第六题: 编写一个日历程序:输入年月 按照格式输出该年月的日历 提示:1900年一月一日是星期一
这篇关于Java核心基础第3篇-Java流程控制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16ShardingSphere 如何完美驾驭分布式事务与 XA 协议?
- 2024-11-16ShardingSphere如何轻松驾驭Seata柔性分布式事务?
- 2024-11-16Maven资料入门指南
- 2024-11-16Maven资料入门教程
- 2024-11-16MyBatis Plus资料:新手入门教程与实践指南
- 2024-11-16MyBatis-Plus资料入门教程:快速上手指南
- 2024-11-16Mybatis资料入门教程:新手必看指南
- 2024-11-16MyBatis资料详解:新手入门与初级实战指南
- 2024-11-16MyBatisPlus资料:初学者入门指南与实用教程
- 2024-11-16MybatisPlus资料详解:初学者入门指南