Java流程控制与方法全解析

一、Java流程控制

(一)用户交互Scanner

Java中,Scanner类常用于从控制台读取用户输入。

语法形式:

Scanner scanner =nwe Scanner (System.in);

1.基础输入

语法形式:

读取字符串:next()、nextLine();

读取整数:nextInt()

读取浮点数:nextDouble()

*next()是读取以空白字符为分隔符;nextLine()会读取输入中的一整行文本,直到遇到换行符为止,但是返回值不包括换行符。

2.多行输入

如果需要逐行读取用户输入,可以使用hasNextLine()和nextLine()结合循环;

*通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext和hasNextLine判断是否还有输入的数据。

(二)顺序结构

顺序结构是程序最基本的执行方式,代码从上到下的顺序执行,无跳转或分支。

(三)选择结构

选择结构通过条件判断决定代码执行路径,常见的形式为if-else和switch-case。用于处理需要分支逻辑的场景。

1.if-else结构

语法形式:

if(condition){

//代码块1;

}else if(condition){

//代码块2;

}else{

//代码块3;

}

适用于复杂的条件判断,可以处理布尔表达式、比较运算符等;可以嵌套。

2.switch-case结构

switch-case适用于对单一变量的多个离散值进行匹配,通常在变量有多个固定选项时使用。

语法形式:

switch(variable){

case value1:

//代码块1;

break;

case value2:

//代码块2:

default:

//代码块3;

}

(四)循环结构

循环结构重复执行一段代码,直到满足终止条件。主要包括for循环和while循环,适用于需要重复操作的场景。

1.while循环

while 循环基于条件判断执行代码块,只要条件为真,循环就会继续。适用于不确定循环次数的情况。

语法形式:

while(condition){

//代码块;

}

2.for循环

for循环用于遍历序列或可迭代对象,循环次数由序列长度决定,适用于一致迭代次数或需要遍历元素的情况。

语法形式:

for(初始化;判断;迭代){

//代码块;

}

(五)break、continue、goto

1.break

break会立即终止当前循环或switch语句的执行,跳出循环或switch结构。

2.continue

continue会跳过当前循环的剩余部分,直接进入下一次循环的条件判断。

3.goto

goto会无条件跳转到程序中的指定标签位置。

*goto容易导致代码结构混乱,应谨慎使用。

二、Java方法

Java方法:语句的集合,执行一个功能。方法是解决一类问题的步骤的有序结合,包含在类或对象中,方法在程序中创建,在其他地方被引用。

*一个方法尽量只完成一个功能,保持高内聚内耦合。

(一)方法的定义与调用

语法形式:

修饰符 返回类型 方法名(参数列表){

//方法体

return 返回值;

}

*修饰符:定义方法的访问类型,可有可没有;

*返回类型:方法可能会返回值,返回类型就是返回值的类型;有时方法没有返回值,返回类型为void;

*方法名:命名应遵循驼峰命名法;

*参数列表:参数可以是零个或多个,之间用逗号间隔;

形式参数:在方法被调用时由于接受外界输入的数据;

实参:调用方法时实际传给方法的数据。

*方法体:包含具体的语句,用{}包含。

调用语法形式:

对象名.方法名(实参列表);

(二)方法重载

方法重载:在同一个类中定义多个同名的方法,但这些方法的参数列表不同。返回值类型可以相同可以不同,但不能仅通过返回值类型区分重载方法。

方法名称相同时,编译器会根据调用方法的参数个数、参数类型去逐个匹配,以选择对应的方法,如果匹配失败,则编译器会报错。

(三)可变参数

可变参数:允许函数接受不定数量的参数。在方法声明中,在指定参数类型后加...

一个方法中只能指定一个可变参数,它必须是方法的最后一个参数,任何普通参数都必须在它声明之前。

(四)递归

递归:通过函数调用自身来解决问题,将复杂问题分解为更小的子问题。

递归结构包括两个部分:

基线条件:递归停止的条件,没有基线条件,将陷入死循环。

递归条件:继续调用自身的条件。

相关推荐
花千树-0102 小时前
5分钟用 Java 构建你的第一个 AI 应用
java·人工智能·spring boot·langchain·aigc·ai编程
码界筑梦坊2 小时前
329-基于Python的交通流量数据可视化分析系统
开发语言·python·信息可视化·数据分析·django·vue·毕业设计
yong99902 小时前
带挂载的四轴飞行器模型预测控制(MPC) MATLAB实现
开发语言·matlab
报错小能手2 小时前
ios开发方向——对于实习开发的app(Robopocket)讲解
开发语言·学习·ios·swift
wjs20242 小时前
Swift 方法
开发语言
计算机安禾2 小时前
【数据结构与算法】第18篇:数组的压缩存储:对称矩阵、三角矩阵与稀疏矩阵
c语言·开发语言·数据结构·c++·线性代数·算法·矩阵
pedestrian_h2 小时前
Java单例模式回顾
java·单例模式·设计模式
a8a3022 小时前
Spring Boot(快速上手)
java·spring boot·后端
华科易迅2 小时前
MybatisPlus乐观锁
java·开发语言·mybatis