Java流程控制
目录
前言
一、用户交互Scanner及其进阶使用
输入的数据为字符串类型
输入的数据为整型或者浮点型
练习
二、顺序结构
三、选择结构
if单选泽结构
if双选择结构
if多选择结构
嵌套的if结构
switch多选择结构
四、循环结构
while循环
Do...while循环
For循环
练习
利用for循环打印九九乘法表
打印三角形
break、continue和goto说明
总结
前言
在学习完Java相关的基础语法之后,紧接着就是学习Java的流程控制。本文介绍了主要包括了顺序结构、选择结构、循环结构的Java流程控制。同时还会学习与C/C++不同的获取用户输入的方式。
一、用户交互Scanner及其进阶使用
Scanner对象
java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入
基本语法:
Scanner s=new Scanner(System.in);
输入的数据为字符串类型
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取之前,我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

next() :
一定要读取到有效字符后才可以结束输入
对输入有效字符之前遇到的空白,next()方法会自动将其去掉
只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
next()不能得到带有空格的字符串

nextLine():
以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符
可以获得空白
输入的数据为整型或者浮点型
通过Scanner类的nextInt()方法或nextFloat()获取输入的整数或浮点数,在读取之前,我们一般需要使用hasNextInt()或hasNextFloat()判断是否还有输入的数据。



练习
输入多个数字,并求其总和与平均值,每输入一个数字用回车确认,通过非数字来结束输入,并输出其执行结果

二、顺序结构
顺序结构是基本结构,除非特别指明,否则就按照顺序一句句执行。
顺序结构是最简单的算法结构,也是任何一个算法都离不开的一种基本算法结构。
三、选择结构
【以下都将利用Scanner对象来获取用户的输入】
if单选泽结构
基本语法:
if(布尔表达式) {
//如果布尔表达式为true将执行的语句
}

if双选择结构
基本语法:
if(布尔表达式) {
//如果布尔表达式为true将执行的语句
}
else{
//如果布尔表达式为false将执行的语句
}
if多选择结构
基本语法:
if(布尔表达式) {
//如果布尔表达式为true将执行的语句
}
else if(布尔表达式){
//如果if的布尔表达式为false且这一布尔表达式为true将执行的语句
}
else if(布尔表达式){}
else{
//如果以上布尔表达式都为false将执行的语句
}
嵌套的if结构
基本语法:
if(布尔表达式) {
//如果布尔表达式为true将执行的语句
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
}

switch多选择结构
基本语法:
switch(expression){ //expression可以是byte,short,int,char,String类型
case value: //当expression时String类型时,value必须是字符串常量/字面量
//语句
break;//可选 //没有break,case有可能都被执行
case value:
.
.
default :
}


四、循环结构
while循环
基本语法
while(布尔表达式){
//布尔表达式为true将执行的语句
}

主要布尔表达式为true,循环就会一直执行下去
我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环
少部分情况需要循环一直执行,比如服务器的请求响应监听等
循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死崩溃!
Do...while循环
基本语法
do{
//执行语句
}
while(布尔表达式)

Do...while总是保证循环体会被至少执行一次(与while的最大区别)
while 先判断后执行
do...while 先执行后判断
For循环
基本语法
for(初始化;布尔表达式;更新){
//执行语句
}
//初始化可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句
//For循环执行次数是执行前知道的


练习
利用for循环打印九九乘法表

打印三角形

break、continue和goto说明
◆ break 在任何循环语句的主体部分,均可用 break 控制循环的流程, break 用于强行遍出循环,不执行循环中剩余的语句。( break 语句也在 switch 语句中使用)
◆ continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
◆关于 goto 关键字
goto 关键字很早就在程序设计语言中出现,尽管 goto 仍是 Java 的一个保留字,但并未在语言中得到正式使用: Java 没有 goto ,然而,在 breakllcontinue 这两个关键字的身上,我们仍然前看出一些goto 的影子...带标签的 break 和 continue
◆"标签"是指后面跟一个冒号的标识符,例如: label :
◆对 Java 来说唯一用到标签的地方是在循环语句之前,而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于 break和continue 关键字通常只中断当前循环,但若随同标签使用,它们就会中断存在标签的地方。
总结
以上就是本文所要介绍的内容,本文介绍了Scanner对象的使用以及顺序、选择、循环结构,其中Scanner对象的用法可能将在后面的学习中大量使用,需要好好掌握。
相关文章:
Java流程控制
目录 前言 一、用户交互Scanner及其进阶使用 输入的数据为字符串类型 输入的数据为整型或者浮点型 练习 二、顺序结构 三、选择结构 if单选泽结构 if双选择结构 if多选择结构 嵌套的if结构 switch多选择结构 四、循环结构 while循环 Do...while循环 For循环 练习 利用for循环…...
I.MX6ULL_Linux_系统篇(17) uboot分析-启动linux
bootz 启动 Linux 内核 images 全局变量 不管是 bootz 还是 bootm 命令,在启动 Linux 内核的时候都会用到一个重要的全局变量:images, images 在文件 cmd/bootm.c 中有如下定义: images 是 bootm_headers_t 类型的全局变量&…...
C/C++每日一练(20230221)
目录 1. 格雷编码 2. 矩阵问题 3. 搜索旋转排序数组 II 1. 格雷编码 格雷编码是一个二进制数字系统,在该系统中,两个连续的数值仅有一个位数的差异。 给定一个代表编码总位数的非负整数 n,打印其格雷编码序列。即使有多个不同答案&#…...
用Python采集热门城市景点数据并简单制作数据可视化图
前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 模块使用: 爬虫部分: requests parsel csv 数据分析部分: pandas pyecharts 如何安装模块: win R 输入 cmd 输入安装命令: pip install 模块名 回车 pycharm里面安装 terminal 输入安装命令…...
论文阅读:pixelNeRF: Neural Radiance Fields from One or Few Images
中文标题:从一或少量图像中构建神经辐射场 提出问题 NeRF效果虽然惊艳,但是其需要大量环绕图像以及长时间的训练。 创新点 与原始的NeRF网络不使用任何图像特征不同,pixelNeRF将与每个像素对齐的空间图像特征作为输入。也可以集合更多输入…...
C++项目——高并发内存池(1)--介绍及定长内存池
1.什么是内存池 1.1 池化技术 将程序中需要经常使用的核心资源先申请出来,放在一个池内,由程序自己管理,这样可以提高资源的使用效率,也可以保证本程序占有的资源数量。 比如之前博文实现的线程池,就是预先的申请出…...
网络有线无线配置
一、需求 在无线接入区内,当Lsw1的上联口出现故障时,需要通过AP1-LSw1-LSw2-LSw3的路径访问公网server3。这是因为AP1通过无线网连接到LSw1,而LSw1与LSw3之间的链路出现故障,无法直接访问公网server3。因此,流量需要通…...
阅读笔记——Feature-Point Matching for Aerial and Ground Images方法
阅读笔记——Feature-Point Matching for Aerial and Ground Images 1.应用背景 在三维重建应用中,常用的是航空影像,但在城市环境中,面对大量的高层建筑物,航空影像往往不能很好的重建出完整的三维模型。因为航空影像视角约束以…...
前端工程师面试题10条必会笔试题
布局 左边20% 中间自适应 右边200px 不能用定位答案:圣杯布局/双飞翼布局或者flex什么叫优雅降级和渐进增强?渐进增强 progressive enhancement:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进…...
【技术分享】Web自动化之Selenium安装
Web 应用程序的验收测试常常涉及一些手工任务,例如打开一个浏览器,并执行一个测试用例中所描述的操作。但是手工执行的任务容易出现人为的错误,也比较费时间。因此,将这些任务自动化,就可以消除人为因素。Selenium 可以…...
【Linux】进程状态的理解
✍作者:阿润菜菜 📖专栏:Liunx系统编程 本文目录概述两个先行概念我们为啥创建进程Linux下的进程状态1. R 运行状态2.S 休眠状态 --- 可中断休眠状态3. D 磁盘休眠状态 ---不可中断休眠4.T 暂停状态 (t 追踪暂停状态)5…...
打游戏哪种蓝牙耳机比较好?适合玩游戏的无线蓝牙耳机
2023年耳机市场一如既往地卷,不只是卷音质,还在外观和功能上做了许多的改进,以至于现在哪怕不懂耳机的人从各电商平台都能闭眼入一个款平价品牌耳机且极少会踩雷,玩游戏是当前年轻人的娱乐方式,下面整理了几款适合玩游…...
Fortinet推出新一代自研安全芯片,跨所有网络边缘加速网络与安全融合
专注网络与安全融合的全球网络安全领导者 Fortinet(NASDAQ:FTNT),近日宣布推出新一代自研安全芯片 FortiSP5,作为 Fortinet ASIC 技术的最新突破,有力推动了分布式网络边缘安全的重大飞跃。FortiSP5 源自 F…...
ChatGPT爆火背后的真相:学编程已经成为必选项
这一阵最热门的话题,莫过于人工智能新选手——ChatGPT,在推出后只用了两个月就积累了1亿用户!它的出现在科技圈掀起了一阵“惊涛骇浪”,有人称ChatGPT的意义,堪比当年蒸汽机的出现,它足以爆发新一轮的“工业…...
Unity UI框架
一、简介 最近在各大网站看了一下 Unity3d 的 UI 框架,各种 UI 框架已经有很多的版本了,各有千秋,有的功能虽然写的完善,但用起来太复杂,有的框架功能不完善,搞个课程就上架了,还有什么 MVC 框…...
vue2提取vue-router的title单独存放,使用i18n实现
成品效果 首先引入i18n(vue-i18n官网文档) 依赖包 npm install vue-i18n8然后单独在src目录下新建一个文件夹lang,存放相对应的变量名称,我这里只做显示中文所以其他引入我都注释了,具体目录如下: src\lang/zh.js部分代码 export…...
【Linux操作系统】【综合实验三 用户帐号、文件系统与系统安全管理】
文章目录一、实验目的二、实验要求三、实验内容四、实验报告要求一、实验目的 要求掌握Linux系统用户的创建、删除与管理操作;熟悉Linux文件系统的管理模式,学会创建用户文件系统并装载和卸载文件系统;掌握超级用户的管理方式与权限…...
sqlite3数据库-sqlite语句1(五)
DML(Data Manipulation Language,数据操作语言) SELECT:查询表中的数据;SELECT语句中使用WHERE子句SELECT <列名>,... FROM <表名> WHERE <条件表达式>;SELECT id,name,purchase_price FROM Product; /*使用逗号分隔查询多列,顺序同子句顺序*/ SELECT * FROM…...
【图像分类】卷积神经网络之LeNet5网络模型实现MNIST手写数字识别
写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 在上一篇博文中我们对LeNet5网络模型的结构进行了剖析,本篇博文,我们将使用PyTorch搭建LeNet5实现MNIST手写数字…...
前端开发环境搭建
文章目录Node.js是什么安装查看版本入门示例NPM使用 npm 命令安装模块常见命令使用淘宝 NPM 镜像TypeScript安装入门示例从github拉取构建项目如何从零创建一个TypeScript项目规划目录结构新建项目Web App运行服务添加依赖打包使用browserify打包使用webpack打包推荐流程目录配…...
Vim 调用外部命令学习笔记
Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
PHP和Node.js哪个更爽?
先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...
新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...
ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
IP如何挑?2025年海外专线IP如何购买?
你花了时间和预算买了IP,结果IP质量不佳,项目效率低下不说,还可能带来莫名的网络问题,是不是太闹心了?尤其是在面对海外专线IP时,到底怎么才能买到适合自己的呢?所以,挑IP绝对是个技…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
基于PHP的连锁酒店管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

