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;

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

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

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

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

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

调用语法形式:

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

(二)方法重载

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

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

(三)可变参数

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

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

(四)递归

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

递归结构包括两个部分:

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

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

相关推荐
未秃头的程序猿4 小时前
Java 26正式发布!这3个新特性,让代码量直接减半
java·后端·面试
用户298698530144 小时前
Word 文档文本查找与替换的 Java 实现方案
java·后端
阿哉4 小时前
Nacos 服务发现源码:藏在背后的两套事件机制,90%的人只讲了一半
java
咖啡八杯4 小时前
GoF设计模式——命令模式
java·设计模式·架构
AI人工智能_电脑小能手4 小时前
【大白话说Java面试题 第125题】【并发篇】第25题:说说 Java 线程的中断机制
java·后端·面试
Java内核笔记5 小时前
Spring Security 源码解析(六)无状态 JWT 实践:Session 共享与自定义过滤器
java·后端
荣码5 小时前
LangGraph多Agent协作:3个Agent干活比1个强,但我踩了4个坑
java·python
唐青枫6 小时前
Java 虚拟线程实战指南:从 Thread API 到 Spring Boot 高并发应用
java
白鲸开源1 天前
Apache SeaTunnel Zeta Engine 的 Basic Auth 是怎么工作的?
java·vue.js·github
白鲸开源1 天前
一文读懂DolphinScheduler插件机制:如何轻松扩展任务类型与数据源
java·架构·github