Java逻辑程序控制与方法

news2024/11/13 9:28:39

🐵本篇文章将对Java的分支结构、循环结构以及方法的部分知识点进行讲解


Java的分支结构、循环结构和C语言基本一致,这里只做简单介绍

1. 分支结构↔️

1.1 if语句

if (布尔表达式) {

        ...

} else if (布尔表达式) {

        ...

} else {

        ...

}

if () {
    if () {
        ...
    }  else {
        ...
    }

}

else只和最近的if匹配

1.2 switch语句

switch(表达式) {
        case 常量值1:{
                语句1;
                break;
        }
        case 常量值2:{
                语句2;
                break;
        }

        default:{
                内容都不满足时执行语句;
                break;

}

switch括号内的表达式类型只能是:1.基本类型:byte、char、short、int;2.引用类型:String常量串、枚举类型
 

2. 循环结构🔁

2.1 while循环

while(布尔表达式) {
        循环语句;
}

2.2 for循环

for(表达式①;布尔表达式②;表达式③) {
        表达式④;
}

2.3 do while循环

do {
        循环语句;
} while(循环条件);

3. 输出与输入

3.1 输出到控制台

System.out.println(输出内容); //输出内容自带'\n'

System.out.print(输出内容); //输出内容不带'\n'

System.out.printf("输出格式", 输出内容); //和C语言用法基本一致

int a = 10;
System.out.println(a);
System.out.print(a);
System.out.printf("%d\n", a);

3.2 从键盘输入

1. 单个输入

import java.util.Scanner; //导包,相当于C语言的头文件

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);//scan是自己命名的

        int num = scan.nextInt(); //输入一个整数
        float f = scan.nextFloat(); //输入一个小数
        String s = scan.nextLine(); //输入一行字符串
        scan.close(); //Scanner使用完后要调用关闭方法
    }

2. 循环输入

public static void main(String[] args) 
    Scanner sc = new Scanner(System.in);

    while(sc.hasNextInt()) { //这里是以输入int型数据为例
        int num = sc.nextInt();
        System.out.println(num);
    }
}

Scanner的用法前期先这样记,后期会进行讲解

4. 方法

4.1 方法的定义

修饰符 返回值类型 方法名称(参数类型 形参, ...){
        方法体代码;
        return 返回值; //如果返回类型为void,则不写return,或者可以写成return;
}

1. 修饰符现阶段先用public static

2. 在Java中方法必须写在类当中、方法不能嵌套定义

3. 方法没有声明这一说法,所以方法写在main方法前还是main方法后都可以,前提是在类中

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        int a = sc.nextInt();
        int b = sc.nextInt();
        int ret = add(a, b); //方法的调用,a、b为实参
        System.out.println(ret);

    }
    public static int add(int x, int y) { //x、y为形参
        return x + y;
    }

4.2 形参和实参

    public static void main(String[] args) {
        int a = 10;
        int b = 20;
        swap(a, b);
    }
    public static void swap(int x, int y) {
        int tmp = x;
        x = y;
        y = tmp;
    }

和C语言一样,方法的形参是实参的一份临时拷贝,在上述代码中,只是将a和b的值传给了形参x和y,因此在swap方法中交换x和y的值并不会影响a和b

4.3 方法的重载

两个方法的方法名相同,而方法的参数列表(形参的类型、个数、顺序至少有一项不同)不同时,称这两种方法被重载了

    public static void main(String[] args) {
        int a = 1;
        int b = 2;
        System.out.println(add(a, b));
        double c = 1.0;
        double d = 2.0;
        System.out.println(add(c, d));
    }
    public static int add(int x, int y) {
        return x + y;
    }
    public static double add(double x, double y) {
        return x + y;
    }

5. 递归

5.1 递归定义

在一个方法内部调用自身的过程称作递归

比如下面的代码:求3!

    public static void main(String[] args) {
        System.out.println(fac(3)); //打印结果为6

    }

    public static int fac(int n) {
        if (n == 1) {
            return 1;
        }
        int tmp = n * fac(n - 1); //在fac方法中调用了自身
        return tmp;
    }

5.2 递归过程:

方法在不断调用自己的过程就是"递"的过程,在这一过程会不断在栈上创建函数栈帧,在"归"的过程就是不断销毁函数栈帧的过程


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1153709.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

文件同步软件选择准则

随着科技的飞速发展,文件同步软件已成为我们日常工作中不可或缺的一部分。它可以帮助我们轻松地实现文件在不同设备、不同服务器之间的同步,确保数据的安全性和一致性。然而,市场上的文件同步软件种类繁多,如何选择适合自己的软件…

管网智慧化建设能为管网提供哪些优势?第3点特别值得注意!

关键词:智能管网、智慧管网、智慧管网建设、智慧燃气、气管网压力监测解决方案 随着信息技术的不断发展,数字城市的发展正在快速向智慧城市推进,而管网智慧化建设是目前智慧城市建设中不可或缺的一个重要举措。 因为早期铺设使用的排水管道…

[NISACTF 2022]join-us 无列名注入 过滤database() 报错获取表名 字段名

mysql注入可报错时爆表名、字段名、库名 – Wupcos Blog 又是sql注入 来做一些吧 这里我们可以很快就获取注入点 抓包开干 开fuzz 过滤很多东西哦 database都过滤了 那么要咋弄啊。。。 绕过database() 这里其实我们可以通过报错来实现 1|a()%23 数据库名这不就来了 然后…

一条 SQL 是如何在 MyBatis 中执行的

前言 MyBatis 执行 SQL 的核心接口为 SqlSession 接口,该接口提供了一些 CURD 及控制事务的方法,另外还可以通过 SqlSession 先获取 Mapper 接口的实例,然后通过 Mapper 接口执行 SQL,Mapper 接口方法的执行最终还是委托到 SqlSe…

循环神经网络 - RNN

循环神经网络(Rerrent Neural Network,RNN)是神经网络的一种,类似的还有深度神经网络(DNN)、卷积神经网路(CNN)、生成对抗网络(GAN)等。**RNN对具有时序特性的数据非常有成效,他能挖掘数据中的时…

初识webpack和打包过程

文章目录 一、path模块1.内置模块path2.path常见的API 二、webpack1.认识webpack2.脚手架依赖于webpack3.Webpack到底是什么呢?4.Vue项目加载的文件有哪些呢?5.Webpack的使用前提6.Webpack的安装7.Webpack的默认打包8.创建局部的webpack 三、webpack配置…

第19章_写在最后

第19章_写在最后 分享1 分享2 如何看待生活上、工作上的冗余、反冗余? 又如何看待社会的脆弱性?反脆弱性? 个人如何应对?

基于深度学习的人脸性别年龄识别 - 图像识别 opencv 计算机竞赛

文章目录 0 前言1 课题描述2 实现效果3 算法实现原理3.1 数据集3.2 深度学习识别算法3.3 特征提取主干网络3.4 总体实现流程 4 具体实现4.1 预训练数据格式4.2 部分实现代码 5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 毕业设计…

血的教训-踩了定时线程池的坑

ScheduledExecutorService 一、背景 大家好呀,上周我们公司由于定时线程池使用不当出了一个故障,几千万的单子可能没了 给兄弟们分享分享这个坑,希望兄弟们以后别踩! 业务中大量的使用定时线程池(ScheduledExecuto…

CSS3盒模型

CSS3盒模型规定了网页元素的显示方式,包括大小、边框、边界和补白等概念。2015年4月,W3C的CSS工作组发布了CSS3基本用户接口模块,该模块负责控制与用户接口界面相关效果的呈现方式。 1、盒模型基础 在网页设计中,经常会听到内容…

软件测试面试,一定要提前准备好的面试题

收集了2023年所有粉丝的面试题后,负责整理出了7个高频出现的面试题,一起来看看。 问题1:请自我介绍下? 核心要素:个人技能优势工作背景经验亮点 参考回答: 第一种:基本信息离职理由 面试官您好&…

吐血整理,Jmeter接口测试-项目案例场景,直接上高速...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 场景一&#xff1…

人工智能-softmax回归

回归可以用于预测多少的问题。 比如预测房屋被售出价格,或者棒球队可能获得的胜场数,又或者患者住院的天数。 事实上,我们也对分类问题感兴趣:不是问“多少”,而是问“哪一个”: 某个电子邮件是否属于垃圾…

groovy下载与安装

Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy也可…

ElasticSearch深度解析入门篇:高效搜索解决方案的介绍与实战案例讲解,带你避坑

ElasticSearch深度解析入门篇:高效搜索解决方案的介绍与实战案例讲解,带你避坑 1.Elasticsearch 产生背景 大规模数据如何检索 如:当系统数据量上了 10 亿、100 亿条的时候,我们在做系统架构的时候通常会从以下角度去考虑问题&a…

【大数据基础平台】星环TDH社区开发版单机部署

🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁 🦄 个人主页——🎐开着拖拉机回家_大数据运维-CSDN博客 🎐✨🍁 🪁🍁🪁🍁🪁&#…

产品解读 | GreatADM如何高效实现数据库资源池化部署?

前段时间,介绍了万里数据库的GreatADM数据库管理平台如何图形化部署MGR(详见文章:探索GreatADM:如何快速定义监控),有朋友想了解GreatADM是否支持资源池化管理、租户隔离、监控等功能。 今天,我…

MaxQuant的安装和使用(linux OR windows)

目录 1. 安装2. 用法2.1 命令行方式(linux)2.2 GUI方式(windows)1) completeAndromeda配置/Configuration(2)数据上传/Raw files (14)组特异参数/Group-specific parameters(17)全局…

如何选择安全又可靠的文件数据同步软件?

数据实时同步价值体现在它能够确保数据在多个设备或系统之间实时更新和保持一致。这种技术可以应用于许多领域,如电子商务、社交媒体、金融服务等。在这些领域中,数据实时同步可以带来很多好处,如提高工作效率、减少数据不一致、提高用户体验…

后台管理(一)

1、管理员登录 1.1、创建Md5加密工具类: public static String md5(String source) {//判断source是否生效if (source null || source.length() 0) {//不是有效的数据throw new RuntimeException(CrowdConstant.MESSAGE_STRING_INVALIDATE);}String algorithm &…