Java分支和循环语句及方法的使用

2023-11-02

1      分支语句No3

顺序语句

分支语句

循环语句

1.1    分支语句(选择结构)

 

分支语句满足某种条件则执行某一部分,满足另一种条件则执行另一部分

 

1.2    if语句

 

简单分支语句:

if(boolean类型表达式){

         语句

}

如果小括号中的表达式成立,则执行大括号中的语句

(大括号如果不加,则仅执行if下的一句语句,一般大括号都会加上)

 

if~else语句:

if(boolean类型表达式){

         语句1

}else{

         语句2

}

如果小括号中的表达式成立则执行语句1,否则执行语句2

 

if ~ else if ~ else

if(表达式1){

         语句1

}else if(表达式2){

         语句2

}else if(表达式3){

         语句3

}else{

         语句4

}

如果表达式1成立则执行语句1,否则如果表达式2成立则执行语句2,否则如果表达式3成立则执行语句3,否则执行语句4

这里的else if可以有0到多个

 

注意:在if else语句中声明的局部变量,生命周期仅限于包含着它的最近的那对大括号(之后学习的循环语句、异常处理语句都是如此,主要看在哪个大括号里声明的)

 

分支语句可以嵌套,if的语句块中还可以有if ... else,else中也可以有

 

1.3    switch 语句

switch 语句  switch表示切换、跳转,根据小括号中的变量去跳转;case表示情况,表示当变量等于case后面这个常量的情况下,执行冒号后面跟着的语句,case 可以有一到多个;default表示默认,如果变量不等于任何一个case后面的常量,那么就执行default后的语句。

switch(变量){

         case常量1:语句1;break;

         case常量2:语句2;break;

         case常量3:

                   语句3;

                   break;

         default:

                   语句0;

                   break;

}

注意:

1、实际开发中语句后面一定要跟上break;

2、default 可以不写

3、小括号中的变量类型有限制,在JDK1.7之前只能用intshortbytechar,(之后可以String,但一般不用)

4、switch效率比if高一些,但只能处理简单的值相等的判断

5、break如果不加,会继续往后执行,直到遇到break

 

三目运算符

  表达式1?表达式2:表达式3

表达式1是布尔类型的,右边的问号表示判断它是true还是false,如果是true,整个表达式返回表达式2,如果是false整个表达式返回表达式3

三目一般适用于两个分支的情况。

如果非要用于两个以上分支的话,可以用嵌套的方式完成,但不推荐这样做

 

转义符

回车(return)  '\r'    13

换行(nextLine)  '\n'  10

(windows中执行换行动作用\r\nlinux中执行换行动作用\n)

制表(tab)     '\t' (可以用来对齐打印的文字)

双引号        '\"' (反斜杠+双引号表示双引号字符)

单引号        '\'' (反斜杠+单引号表示单引号字符)

反斜杠        '\\' (两个反斜杠表示一个反斜杠)

 

运算符的优先级

 

 

2      循环语句No4

循环语句

 

2.1    for循环

【一般用于确定循环次数的循环操作】

for(表达式1;表达式2;表达式3){

         语句

}

表达式1  在循环开始前执行一次,一般用于初始化

表达式2  循环条件,一般为boolean类型,为true则循环继续,为false则循环终止(不写则表示一直为true)

表达式3  每次循环在语句执行完后执行,一般用于对循环条件进行变更

 

语句     循环执行的语句,每次表达式2为true,则执行一次语句

 

循环体中可以进行任何操作,比如可以放入分支语句

 

在for循环小括号()表达式1中声明的变量,生命周期、作用范围到整个循环结束

在for循环大括号{}循环体中声明的变量,生命周期更短,仅限于单次循环

 

break 打断,如果在循环中被执行,就会打断所在的所有循环

 

 

continue 继续,如果在循环中被执行,会打断所在的当次循环,继续下一次循环【结束本次循环,直接进入下一次循环】

 

【退出多层循环】

扩展语法:breakcontinue后可以跟上标记

ok:for(inti=0;i<5;i++){for(j=0;j<5;j++){

System.out.println(i+”………”+j);

Break ok;  //加一个标记,跳出多重循环-------使用标记

}

}

【自定义退出标记:

Boolean flag = false;

for(int i=0;i<5;i++){for(j=0;j<5;j++){

System.out.println(i+”………”+j);

Flag = true;   //控制外层循环是否结束

Break;       //控制本层循环结束

}

If(flag){break;}

}

 

循环可以嵌套循环

如果在嵌套循环中执行了break或continue,它只会影响所在那层循环,不会影响外层循环

如果要影响外层循环,就在外层循环break,通过一个在外层循环声明的标记变量,让内层循环通知外去环打断

(break 有label特性可以直接打断外层循环,但一般不使用)

 

for(;;)死循环

往往会在循环体中进行if判断,如果满足某种条件,就break

 

 

2.2    while语句

【一般用于不确定循环次数的循环操作】

while(条件){

         语句

}

当条件为true时,不停地执行语句

 

 

do...while语句

do{

         语句

}while(条件);

和while逻辑一样,但是会先执行语句,再判断。

do...while在任何情况下至少执行一次语句

 

while语句也可以死循环

while(true){

         ...

}

注意:for循环和While循环是可以相互替换的

while(a>0){}    for(;a>0){}

         使用for循环实现死循环:for(;;){}

 

2C语言中支持goto关键字的使用

3      方法的使用No5

初学:

疯狂Java讲义

Head First Java

有基础:

Thinking in Java

 

方法(函数)

f(x)=x+1 数学函数f的定义

f(1)=1+1=2 数学函数f的调用、使用

f(10)=10+1=11  数学函数f的调用、使用

g(x,y)= x + y 数学函数g的定义

g(500,500)=500+500=1000  数学函数g的调用、使用

g(100,900)=100+900=1000  数学函数g的调用、使用

Java中的方法(函数)的定义和使用

定义:

[修饰符] 返回类型 方法名(参数类型 参数1,参数类型 参数2...){

         语句

         return值;

}

(修饰符暂时都用public static)

 

调用:

变量 = 方法名(实际的参数)

调用这个方法,会执行方法定义时的逻辑,并将返回值返回出来,可以

用一个变量将方法返回的值保存起来(将方法返回的值赋给一个变量)

 

注意:方法调用时传入的参数要和定义的时候的参数匹配,或者说实参

要和形参匹配

定义时的参数称为形参(形式参数),调用时传入的参数称为实参

(实际参数)

 

注意:方法定义时return的值要和声明的返回类型一致

 

方法调用时会把实参的值赋给形参

(参数类型不一定匹配、返回类型也不一定,具体规则参照水杯、水桶)

 

方法定义时的返回类型可以是void,表示不返回任何值;(但是返回类型

位置不能什么也不写,不返回也得写上void)

在void的情况也可以return,但是return后不跟任何的值

 

一旦在方法中执行了return,return后面的语句都不会执行

 

 

方法的重载

同一个类中方法同名但参数列表不同

参数列表不同,指参数个数不同或参数类型不同或参数顺序不同

test(int i) test(int i,int j) 个数不同

test(int i) test(double d)    类型不同

test(int i,double d) test(double d,inti)  参数顺序不同

(返回类型无视)

 

重载案例:PrintStream的println、print系列重载方法

println("hello")

println(1)

println('h')

println()....

这样的设计让使用者更方便

 

 

递归方法:方法自己调用自己

1、层层递进

2、归于出口


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java分支和循环语句及方法的使用 的相关文章

  • 如何将本机库链接到 IntelliJ 中的 jar?

    我正在尝试在 IntelliJ 中设置 OpenCV 但是我一直在弄清楚如何告诉 IntelliJ 在哪里可以找到本机库位置 在 Eclipse 中 添加 jar 后 您可以在 Build Config 屏幕中设置 Native 库的位置
  • 不同帐户上的 Spring Boot、JmsListener 和 SQS 队列

    我正在尝试开发一个 Spring Boot 1 5 应用程序 该应用程序需要侦听来自两个不同 AWS 帐户的 SQS 队列 是否可以使用 JmsListener 注解创建监听器 我已检查权限是否正确 我可以使用 getQueueUrl 获取
  • Spring应用中Eureka健康检查的问题

    我正在开发一个基于 Spring 的应用程序 其中包含多个微服务 我的一个微服务充当尤里卡服务器 到目前为止一切正常 在我所有其他微服务中 用 EnableEurekaClient 我想启用这样的健康检查 应用程序 yml eureka c
  • 使用 LinkedList 实现下一个和上一个按钮

    这可能是一个愚蠢的问题 但我很难思考清楚 我编写了一个使用 LinkedList 来移动加载的 MIDI 乐器的方法 我想制作一个下一个和一个上一个按钮 以便每次单击该按钮时都会遍历 LinkedList 如果我硬编码itr next or
  • 为 java 游戏创建交互式 GUI

    大家好 我正在创建一个类似于 java 中的 farmville 的游戏 我只是想知道如何实现用户通常单击以与游戏客户端交互的交互式对象 按钮 我不想使用 swing 库 通用 Windows 看起来像对象 我想为我的按钮导入自定义图像 并
  • HSQL - 识别打开连接的数量

    我正在使用嵌入式 HSQL 数据库服务器 有什么方法可以识别活动打开连接的数量吗 Yes SELECT COUNT FROM INFORMATION SCHEMA SYSTEM SESSIONS
  • 如何在 Spring 中禁用使用 @Component 注释创建 bean?

    我的项目中有一些用于重构逻辑的通用接口 它看起来大约是这样的 public interface RefactorAwareEntryPoint default boolean doRefactor if EventLogService wa
  • Java 公历日历更改时区

    我正在尝试设置 HOUR OF DAY 字段并更改 GregorianCalendar 日期对象的时区 GregorianCalendar date new GregorianCalendar TimeZone getTimeZone GM
  • 没有 Spring 的自定义 Prometheus 指标

    我需要为 Web 应用程序提供自定义指标 问题是我不能使用 Spring 但我必须使用 jax rs 端点 要求非常简单 想象一下 您有一个包含键值对的映射 其中键是指标名称 值是一个简单的整数 它是一个计数器 代码会是这样的 public
  • 检测并缩短字符串中的所有网址

    假设我有一条字符串消息 您应该将 file zip 上传到http google com extremelylonglink zip http google com extremelylonglink zip not https stack
  • Eclipse Maven Spring 项目 - 错误

    I need help with an error which make me crazy I started to study Java EE and I am going through tutorial on youtube Ever
  • 如何在用户输入数据后重新运行java代码

    嘿 我有一个基本的java 应用程序 显示人们是成年人还是青少年等 我从java开始 在用户输入年龄和字符串后我找不到如何制作它它们被归类为 我希望它重新运行整个过程 以便其他人可以尝试 的节目 我一直在考虑做一个循环 但这对我来说没有用
  • tomcat 中受密码保护的应用程序

    我正在使用 JSP Servlet 开发一个Web应用程序 并且我使用了Tomcat 7 0 33 as a web container 所以我的要求是tomcat中的每个应用程序都会password像受保护的manager applica
  • Eclipse 选项卡宽度不变

    我浏览了一些与此相关的帖子 但它们似乎并不能帮助我解决我的问题 我有一个项目 其中 java 文件以 2 个空格的宽度缩进 我想将所有内容更改为 4 空格宽度 我尝试了 正确的缩进 选项 但当我将几行修改为 4 空格缩进时 它只是将所有内容
  • 最新的 Hibernate 和 Derby:无法建立 JDBC 连接

    我正在尝试创建一个使用 Hibernate 连接到 Derby 数据库的准系统项目 我正在使用 Hibernate 和 Derby 的最新版本 但我得到的是通用的Unable to make JDBC Connection error 这是
  • 干净构建 Java 命令行

    我正在使用命令行编译使用 eclipse 编写的项目 如下所示 javac file java 然后运行 java file args here 我将如何运行干净的构建或编译 每当我重新编译时 除非删除所有内容 否则更改不会受到影响 cla
  • 使用反射覆盖最终静态字段是否有限制?

    在我的一些单元测试中 我在最终静态字段上的反射中遇到了奇怪的行为 下面是说明我的问题的示例 我有一个基本的 Singleton 类 其中包含一个 Integer public class BasicHolder private static
  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • Spring Rest 和 Jsonp

    我正在尝试让我的 Spring Rest 控制器返回jsonp但我没有快乐 如果我想返回 json 但我有返回的要求 完全相同的代码可以正常工作jsonp我添加了一个转换器 我在网上找到了用于执行 jsonp 转换的源代码 我正在使用 Sp
  • Java中super关键字的范围和使用

    为什么无法使用 super 关键字访问父类变量 使用以下代码 输出为 feline cougar c c class Feline public String type f public Feline System out print fe

随机推荐

  • 四种常见Bug类型

    1 粗心 pwd input 请输入密码 if pwd 520666 print 正确 这是验证用户密码的代码 如果你把它放进运行 会报如下错误 找一下这段代码错误 修改代码让它成功运行 pwd input 请输入密码 if pwd 520
  • QT slot,signal,connect

    connect三种写法 函数 指针 宏 lambda 函数 指针 connect sender QObject destroyed this MyObject objectDestroyed 宏 connect sender SIGNAL
  • Qstring类的常见使用

    Qstring 数据块 初始化 QSring类型之间的相互转换 Qstring转成其他类型 其他类型转Qstring Qstring类的常用方法 拼接字符 格式化 查找特定位置的字符 插入字符 起始位置插入数据 替换指定位置的几个字符 查询
  • QT QPushButton 通过stylesheet 设置样式

    1 QT QPushButton 通过stylesheet 设置样式 ui gt pushButton gt setStyleSheet QPushButton background color rgba 255 178 0 100 col
  • Mysql8完全卸载教程

    0 备份所有需要保留的数据库 在Navicat中选择对应库表选择导出为Sql文件即可 如果卸载数据库的来由是因为数据库已经无法正常使用打开所以需要卸载数据库进行重新安装的话可以跳过这一步 1 停止所有Mysql相关服务 Win11直接搜索服
  • 农作物地块范围识别(图像分割)

    来源 机器学习AI算法工程 知乎 Now more 本文约5500字 建议阅读15分钟本文为你介绍 以薏仁米作物识别以及产量预测为比赛命题 及对对应获奖的开发算法模型 农作物的资产盘点与精准产量预测是实现农业精细化管理的核心环节 当前 我国
  • Unity实现全景图

    1 前言 实现全景查看有两种方式 一种是创建天空盒 另外一种是全景图渲染到一个球形上 从内球内部看 两者都可以用天空盒材质Skybox实现 2 创建天空盒材质 先创建一个材质球命名为Sky 在 Shader 下拉选单中 单击 Skybox
  • 【JavaScript 逆向】521 加速乐多层响应 Cookie 逆向

    前言 现在一些网站对 JavaScript 代码采取了一定的保护措施 比如变量名混淆 执行逻辑混淆 反调试 核心逻辑加密等 有的还对数据接口进行了加密 这次的案例是对加速乐 AAEncode OB 混淆方式的破解 声明 本文章中所有内容仅供
  • Hadoop使用

    1 常用命令 1 namenode格式化 hdfs namenode format 2 启动历史服务器 mapred daemon start historyserver 或者mr jobhistory daemon sh stop his
  • Git仓库版本的回退/前进

    前言 版本库做为一个可迭代更新的仓库 不可能只是单纯提供版本更新操作 其最重要的还是提供了历史版本回滚功能 在使用版本回滚功能前 我们会使用一系列的辅助查询命令 比如查看版本信息 仓库状态能命令 辅助是否需要进行回滚操作 一 查看版本信息
  • 运算放大器的应用(一)放大器

    在硬件电路设计中 运算放大器的应用非常广泛 今天来记录一下作为放大器的应用和公式推导 放大器典型电路 根据放大器基本原理 虚短 特性可知 U0 U1 根据 虚断 特性可知 U1点电流近似为0 则流过R1的电流等于流过R2的电流 根据欧姆定律
  • Photoshop 2023 Beta 内置Ai绘图功能介绍&安装教程

    距离Adobe软件公司首次将图像编辑及数字绘画软件Photoshop推出到大众面前已经过去35年 最近该公司又再次书写了属于Photoshop的历史新篇章 最近 Adobe 宣布 Photoshop Beta 迎来更新 新增 创意填充 Ge
  • linux下使用selenium

    1 需要linux安装chrome浏览器 安装命令 yum localinstall google chrome stable current x86 64 rpm 2 得的谷歌浏览器版本号 根据版本号选择最接近的内核版本 linux命令
  • 反射获取类的成员变量值

    public class ClassFieldTest public ClassFieldTest List
  • machine unlearning 论文阅读笔记

    文章目录 前言 概要 导论 unlearning 定义 SISA 系统 时间复杂度 实验测试 总结 前言 做一篇发表在顶会S P 4 2 n d 42 nd
  • Connection reset by peer

    今天升级完openssh8 6以后突然发现无法连接服务器了 注意前提是升级成功了 连接时报错如下 Connection reset by peer 解决方案 使用root执行命令 echo sshd ALL gt gt etc hosts
  • 【mcuclub】水流量检测模块-YF-S401

    一 实物图 型号 YF S401 二 原理图 编号 名称 功能 1 VCC 电源正 红色线 2 GND 电源地 黑色线 3 OUT 输出引脚 黄色线 三 简介 水流量传感器主要由塑料阀体 水流转子组件和霍尔传感器组成 它装在电器的进水端 用
  • JVM--调优--03--开发配置

    JVM 调优 03 开发配置 1 本地配置 Xmx1g Xms1g Xmn900m XX UseG1GC Xloggc gc log XX PrintGCDetails 2 linux tomcat 配置 进入tomcat的bin目录 修改
  • 软工作业 双人项目代码规范

    双人项目代码编写规范 蔡东杰 房林尧 以下共分为四个部分 缩进代码 命名规则 代码注释 异常处理 部分规范已做实例说明 后续编代码时需要严格遵守 一 关于缩进代码 一行里面只写一行代码 包括定义变量 一行只定义一个 左括号和后一个字符之间不
  • Java分支和循环语句及方法的使用

    1 分支语句No3 顺序语句 分支语句 循环语句 1 1 分支语句 选择结构 分支语句满足某种条件则执行某一部分 满足另一种条件则执行另一部分 1 2 if语句 简单分支语句 if boolean类型表达式 语句 如果小括号中的表达式成立