Java流程控制

本章一起来探讨下Java的流程控制语句。主要从以下几个方面展开:

  • Java分支语句
  • Java循环语句

Java其实和其他任何的开发语言一样,分支语句循环语句是必不可少的,有个这两个功能之后,我们完成类似:

  1. 判断成绩等级,优秀或者良好
  2. 完成九九乘法表等相关的操作

一、分支语句

1.1 分支语句简介

  • 分支语句根据一定的条件有选择地执行或跳过特定的语句
  • 从而来完成根据不同的条件,得到不同的结果,来满足现实生活中的需求
  • Java中提供了多种实现分支语句的方式
    • 1)if : 单分支语句,如果满足进入该语句块
    • 2)if...else: 如果满足进入该if语句块,否则进入else语句块,二选一
    • 3)if...else if...else if...else:多分支语句,条件满足进入一个分支,如果都不满足进入 else
    • 4)switch...case: 实现语句块

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语句块;

也就是说ifelse语句块必须会进入其中的一个分支;同时也不存在两个分支同时进入;

如上图右侧,就是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执行顺序

  1. 第一步,对i进行初始化为1
  2. 第二步,判断i是否小于100
  3. 第三步,如果返回true,执行对应语句块内容
  4. 第四步,执行语句块内容,进行迭代,将i进行++操作
  5. 第五步,迭代完毕之后在进行判断,执行第二步操作
  6. 第六步,如果满足继续进入代码块,如果不满足,则跳出循环

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 循环语句可以实现这种操作方式;

whiledo...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提供了continuebreak 关键字用来终止循环继续执行。

  • 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流程控制的更多相关文章

  1. Java核心基础第2篇-Java基本语法

    Java基本语法 本章一起来探讨下Java的基本语法.主要从以下几个方面展开: Java关键字 Java标识符 Java变量 Java数据类型 Java运算符 学完本章内容之后,我们对Java会有更深 ...

  2. Java核心基础第5篇-Java面向对象_类和对象

    Java面向对象之类和对象 一.面向对象概述 Java是完全的面向对象编程(Object Oriented Programming),简称OOP. 面向对象编程的思维方式更加符合大家的日常生活,因为我 ...

  3. Java核心基础第4篇-Java数组的常规操作

    Java数组 一.数组简介 数组是多个相同类型数据的组合,实现对这些数据的统一管理 数组属引用类型,数组型数据是对象(Object) 数组中的元素可以是任何数据类型,包括基本类型和引用类型 数组类型是 ...

  4. [java学习笔记]java语言基础概述之运算符&程序流程控制&for循环嵌套

    一.运算符 算数运算符 +,-,*,/,%,++,-- 1.+,-,*,/ 整数除以整数的结果为舍弃了小数部分的整数. 2.%:取余 %左右都为正数,左边小于右边结果为左边值,如,4%5=4 %左边大 ...

  5. [Java入门笔记] Java语言基础(四):流程控制

    流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下几种: 顺序结构 顺序结构,顾名思义,是指程序从上往下逐步顺序执行.中间没有任何的判断和跳转. 分支结构 Java提供两种分支结构: ...

  6. Java核心基础第1篇-走进Java世界

    一.Java简介 1.1 Java概述 Java从一开始就以友好的语法.面向对象.内存管理和最棒的跨平台可移植性来吸引程序员. 写一次就可以在所有地方执行( write-once/run-anywhe ...

  7. Java语言基础(二) Java关键字

    Java语言基础(二) Java关键字 Java关键字比较多,我就不列举出来了,只记录一些常用的小知识点: ①Java的关键字只有小写. ②then.sizeof都不是Java的关键字,熟悉C++的程 ...

  8. 李洪强iOS开发Swift篇—06_流程控制

    李洪强iOS开发Swift篇—06_流程控制 一.swift中的流程控制 Swift支持的流程结构如下: 循环结构:for.for-in.while.do-while 选择结构:if.switch 注 ...

  9. 【Java基础】基本语法-程序流程控制

    基本语法-程序流程控制 程序流程控制 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块. 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即: 顺 ...

随机推荐

  1. Ansible_使用文件模块将修改文件复制到受管主机

    一.描述常用文件模块 1.常用文件模块 模块名称 模块说明 blockinfile 插入.更新或删除由可自定义标记线包围的多行文本块 copy 将文件从本地或远程计算机复制到受管主机上的某个位置.类似 ...

  2. mysql基础之mariadb的安装,连接,用户,密码,权限设置语句详解

    一.mariadb安装 1.配置mariadb源: [root@ren7 ~]# vim /etc/yum.repos.d/mariadb.repo [mariadb] name = MariaDB ...

  3. git OpenSSL SSL_connect问题

    遇到这个问题,查找别人也遇到,省时间不写了直接复制 在使用Git来克隆仓库报了错误,如下: fatal: unable to access 'https://github.com/xingbuxing ...

  4. 细谈select函数(C语言) -(转自 piaojun_pj的专栏)

    Select在Socket编程中还是比较重要的,可是对于初学Socket的人来说都不太爱用Select写程序,他们只是习惯写诸如connect.accept.recv或recvfrom这样的阻塞程序( ...

  5. 微信小程序在ios系统不兼容new Date('yyyy-mm-dd')

    微信小程序中使用new Date('2021-04-01 10:11:20')来转换时间在苹果手机不生效 兼容写法为new Date('2021/04/01 10:11:20')

  6. GO学习-(7) Go语言基础之流程控制

    流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码. ...

  7. 摄像头PVD和CVD薄膜

    摄像头PVD和CVD薄膜 在FDP 的生产中,在制作无机薄膜时,可以采用的方法有两种:PVD 和CVD (将VE 和VS 归于PVD ,而ALD 归于CVD). Physical Vapor Depo ...

  8. Amazon SageMaker和NVIDIA NGC加速AI和ML工作流

    Amazon SageMaker和NVIDIA NGC加速AI和ML工作流 从自动驾驶汽车到药物发现,人工智能正成为主流,并迅速渗透到每个行业.但是,开发和部署AI应用程序是一项具有挑战性的工作.该过 ...

  9. CodeGen结构循环回路

    CodeGen结构循环回路 structure循环是一个模板文件构造,它允许您迭代CodeGen拥有的有关结构的集合.为了使用结构循环,必须同时基于多个存储库结构生成代码. CodeGen可以通过以下 ...

  10. Java 将PPT幻灯片转为HTML

    本文以Java程序代码为例展示如何通过格式转换的方式将PPT幻灯片文档转为HTML文件.这里的PPT幻灯片可以是.ppt/.pptx/.pps/.ppsx/.potx等格式. 代码实现思路:[加载PP ...