脚踏Java知识点

news2024/12/27 3:56:43

对上节Java的基础语法续讲

三元运算符和if语句格式的区别

在这里插入图片描述

语法格式:

三元运算符的语法格式是:(condition) ? expression1 : expression2;
if语句的语法格式是:
if (condition) {
// 执行 expression1
} else {
// 执行 expression2
}

表达式执行:

三元运算符中,根据条件(condition)的结果,如果为真,则执行expression1;如果为假,则执行expression2。
if语句中,根据条件(condition)的结果,如果为真,则执行if代码块中的语句;如果为假,则执行else代码块中的语句。

返回值:

三元运算符返回expression1或expression2的值作为整个表达式的结果。
if语句没有具体返回值,它只用于根据条件决定执行哪个代码块。

在这里插入图片描述

使用场景:

三元运算符适用于简单的条件判断和处理一行简短的表达式的情况。
if语句适用于多个条件判断以及复杂的代码逻辑和流程控制。
需要注意的是,三元运算符和if语句虽然都可以实现条件判断,但在不同的情况下选择使	用对应的语法结构能够提高代码的可读性和维护性。

switch语句

在Java中,switch语句用于根据不同的情况执行不同的代码块。它是一种多分支
选择结构,相比使用多个if-else语句来判断条件,switch语句可以提供更简洁
清晰的代码。

switch语句的基本语法如下:

switch (expression) {
case value1:
    // 当 expression 等于 value1 时执行的代码块
    break;
case value2:
    // 当 expression 等于 value2 时执行的代码块
    break;
...
default:
    // 如果 expression 不等于任何一个 case 的值时执行的代码块
    break;
}

switch语句的执行流程如下:

expression 是需要进行匹配的表达式或值。
程序将 expression 的值与每个 case 的值依次比较,直到找到匹配的 case 或执行到 default(可选)。
如果找到匹配的 case,则执行该 case 下的代码块。注意,在执行代码块后需要使用 break 语句跳出 switch 语句。
如果没找到匹配的 case,且存在 default,则执行 default 下的代码块。
如果没有 default,则 switch 语句结束,程序继续执行 switch 语句后面的代码。

需要注意的是:

expression 只能是整型、字符型(Java 7及之前版本)或枚举类型。从Java 7开始,expression 还可以是字符串类型。
每个 case 后面必须使用 break 关键字跳出 switch 语句,否则将会继续执行后续 case 的代码,这种现象被称为"case 穿透"。如果希望多个 case 具有相同的执行逻辑,可以省略 break 关键字。
default 子句是可选的,表示当 expression 不等于任何一个 case 的值时执行的代码块。

下面是一个示例,演示了如何使用 switch 语句判断星期几:

	int day = 4;
	String dayName;
	switch (day) {
    case 1:
        dayName = "Monday";
        break;
    case 2:
        dayName = "Tuesday";
        break;
    case 3:
        dayName = "Wednesday";
        break;
    case 4:
        dayName = "Thursday";
        break;
    case 5:
        dayName = "Friday";
        break;
    case 6:
        dayName = "Saturday";
        break;
    case 7:
        dayName = "Sunday";
        }

循环结构

在Java中,常用的循环结构有for循环、while循环和do-while循环。它们可以
让程序重复执行某段代码,直到满足指定的条件。

for循环:

for循环是一种定义初始条件、判断条件和更新条件的循环结构。
语法格式如下:

for (初始条件; 判断条件; 更新条件) {
// 循环体代码
}
具体执行过程为
先执行初始条件,然后判断判断条件是否为真,如果为真则执行循环体中的代码,
并执行更新条件,然后再次判断条件,再执行循环体,如此循环,直到判断条件
为假时跳出循环。

while循环:

while循环是一种只根据判断条件来控制循环执行的结构。语法格式如下:

while (判断条件) {
// 循环体代码
}
具体执行过程为
先判断判断条件是否为真,如果为真则执行循环体中的代码,再次判断条件,再
执行循环体,如此循环,直到判断条件为假时跳出循环。

do-while循环:

do-while循环和while循环类似,不同之处在于它先执行一次循环体中的代码,
然后再判断条件是否为真。语法格式如下:

do {
// 循环体代码
} while (判断条件);
具体执行过程为
先执行循环体中的代码,然后判断判断条件是否为真,如果为真则继续执行循环
体,再次判断条件,如此循环,直到判断条件为假时跳出循环。

小结

这些循环结构可以根据需要选择不同的方式来实现程序的重复执行,具体使用哪
种循环取决于需求和情况。需要注意在循环中适时更新条件,避免造成死循环。

循环结构示例

求水仙花数

public class crj {
    public static void main(String[] args) {
        int count = 0;
        for (int i = 100; i < 1000; i++) {
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i / 100;
            if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) {
                count += 1;
                System.out.println("水仙花数为" + i);
                System.out.println("水仙花一共有"+count+"个");
            }
        }
    }
}

回文数 输出所有5位数的回文数

public class crj {
    public static void main(String[] args) {
        int count = 0;
        for (int i=10000;i<100000;i++){
            int ge = i%10;
            int shi = i/10%10;
            int qian = i/1000%10;
            int wan = i/10000;
            if(ge==wan&&shi==qian) {
                count++;
                System.out.println("回文数是" + i);
            }
        }
        System.out.println("回文数数量"+count);
    }
}

逢7过1-100中有7则打印

public class crj {
    public static void main(String[] args) {
        for (int i = 1; i <= 100; i++) {
            if ((i % 10 == 7) || (i / 10 % 10 == 7) || (i % 7 == 0)) {
                System.out.println(i);
            }
        }
    }
}

求奇数和

public class crj {
    public static void main(String[] args) {
          //1
        int sum=0;
        for(int i=1;i<=100;i++){
            if(i%2==1)
                sum = sum+i;
            else
                continue;
        }
          //2
        int i=1;
        while(i<=100){
            sum+=i;
            i+=2;
        }
        System.out.println("1到100奇数和为"+sum);
    }
}

四级标题循环案例

    小芳存钱
    每天存2.5元,每五天花6元,多少天可以存100
public class crj {
    public static void main(String[] args) {
        double daymony = 2.5;
        double summoney = 0;
        int result =100;
        int daycount =1;
        while (true){
            summoney+=daymony;
            if(summoney>=result){
                break;
            }
            if(daycount%5==0){
                summoney-=6;
            }
            daycount++;
        }
        System.out.println(daycount);
    }

}

在这里插入图片描述

方法(method):是完成特定功能的代码块

在Java中,方法是一段封装了特定功能的可执行代码块。方法可以带有参数,
并可能返回一个值。它可以在类中定义,用于执行重复的操作、实现特定的功
能或提供代码的组织结构。

    格式 public static void 方法名(){
    //方法体
    }
    注意事项1 方法不能嵌套定义
            2 void表示无返回值,也可以单独写return 后面不写数据
访问修饰符:控制谁可以访问该方法(如public、private、protected等)。
返回类型:方法执行完后返回的数据类型,可以是基本类型或对象类型,如果不返回任何值,则使用void关键字。
方法名:方法的标识符,用于唯一地表示一个方法。
参数列表:传递给方法的输入参数,可以包含零个或多个参数,多个参数之间用逗号分隔。
方法体:包含了方法要执行的代码块。
方法的调用:
通过方法名和参数列表的组合来调用方法。调用方法时,会将具体的参数值传递
给方法,方法执行相应的操作并可能返回一个值。


返回值变量 = 方法名(参数值);
返回值变量:用来接收方法返回的值,如果方法没有返回值,则可以省略。
方法名:要调用的方法的名称。
参数值:传递给方法的具体参数值,与方法定义时的参数列表匹配。
方法的重载:
	在一个类中,可以定义多个同名但参数列表不同的方法,称为方法的重
	载(Overload)。重载方法通过参数列表的类型、顺序或数量的不同来
	区分。

代码示例

public class crj {
    public static void main(String[] args) {
        isEvenNumber();
    }
    //需求:定义一个方法,在方法中定义一个变量,判断数据是否为偶数
    public static void isEvenNumber(){
        int number = 10;
        if(number%2==0){
            System.out.println(number+"是偶数");
        }else{
            System.out.println(number+"不是偶数");
        }
    }
}

方法示例

输出较大值

public class crj {
    public static void main(String[] args) {
        getMax();
    }
    public static void getMax(){
        int a =10;
        int b=20;
        if(a>=b){
            System.out.println("较大的数是"+a);
        }else{
            System.out.println("较大的数是"+b);
        }
    }
}

带参数的方法调用

public class crj {
    public static void main(String[] args) {
        //字面量调用
        isEvenNumber(3);
        isEvenNumber(6);
        //变量的调用
        int number = 11;
        isEvenNumber(number);
        number = 12;
        isEvenNumber(number);
    }
    public static void isEvenNumber(int number) {
        if (number % 2 == 0) {
            System.out.println(true);
        } else {
            System.out.println(false);
        }
    }
}

在这里插入图片描述

输出较大值 数据来自方法参数

public class crj {
    public static void main(String[] args) {
        getMex(10,20);
        int x=20;
        int y=30;
        getMex(x,y);
    }
    public static void getMex(int a,int b){
        if(a>=b){
            System.out.println("较大的数是"+a);
        }else{
            System.out.println("较大的数是"+b);
        }
    }
}

判读是否为偶数 返回布尔值

public class crj {
    public static void main(String[] args) {
          //返回值需用变量接收
        boolean flag=isEvenNumber(10);
        System.out.println(flag);
        if(flag){
            System.out.println("是偶数");
        }

    }
    public static boolean isEvenNumber(int number){
        if(number%2==0){
            return true;
        }
        else {
            return false;
        }
    }
}

输出较大值—— 数据来自于参数

public class crj {
    public static void main(String[] args) {
//        int max = getMax(10,20);
//        System.out.println(max);
        int max = getMax(10, 20);//.val 自动输出左边内容
        System.out.println(max);//max.sout将max变量放到输出语句
        System.out.println(getMax(10, 20));
    }

    public static int getMax(int a, int b) {
        if (a >= b) {
            return a;
        } else {
            return b;
        }
    }
}

方法的定义与调用

1.求和 1~n之间的数据和

public class crj {
    public static void main(String[] args) {
        int result = sum(5);
        System.out.println("1-5的和是"+result);
        result=sum(100);
        System.out.println("1-100的和是"+result);
    }

    public static int sum(int n) {
        int sum = 0;
        for (int i = 1; i <= n; i++) {
            sum += i;
        }
        return sum;
    }
}

2.比较相等 比较两个整数是否相等

public class crj {
    public static void main(String[] args) {
        boolean flag = comple(10, 20);
        System.out.println("10和20相等吗 " + flag);
        flag = comple(10, 10);
        System.out.println("10和10相等吗 " + flag);
    }

    public static boolean comple(int a, int b) {
        return a == b;//优化3
    }
}

在这里插入图片描述

3 获取三个整数的较大值

public class crj {
    public static void main(String[] args) {
        int  max = getMax(10, 20, 30);
        System.out.println("10,20,30中的较大值"+max);
    }
    public static int getMax(int a,int b,int c){
        int temMax=a>b?a:b;     
        int max=temMax>c?temMax:c;
        return max;
    }
}

4 水仙花数

public class crj {
    public static void main(String[] args) {
        for(int i =100;i<1000;i++){
            if(isFlour(i)){         //优化
                System.out.println(i);
            }
        }
    }
    public static boolean isFlour(int number) {
        int ge = number % 10;
        int shi = number / 10 % 10;
        int bai = number / 100;
        if (ge * ge * ge + shi * shi * shi + bai * bai * bai == number) {
            return true;
        } else {
            return false;
        }
    }
}

在这里插入图片描述

方法重载

在Java中,方法的重载(Overload)是指在同一个类中定义了多个具有相同名
称但参数列表不同的方法。这意味着可以使用相同的方法名,但根据不同的参
数类型、参数个数或参数顺序来调用不同的方法。
重载的目的
为了提高代码的可读性和灵活性,通过给方法提供多个参数组合的选项,以适
应不同的使用场景。
方法重载的几个特点和规则:
方法重载必须在同一个类中进行。
方法名必须相同,但在同一类中,方法的参数列表必须不同(参数类型、参数个
	数或参数顺序)。
返回类型不会影响方法的重载。即使返回类型不同,只要参数列表不同,仍然被
	认为是重载。
方法重载与方法的修饰符、返回值无关。
方法重载可以被继承。
调用重载方法时,编译器会根据实参的具体类型匹配合适的重载方法。

重载方法的示例:

public class OverloadExample {
    public void showMessage(String message) {
        System.out.println("Message: " + message);
    }

    public void showMessage(int number) {
        System.out.println("Number: " + number);
    }

    public void showMessage(String message, int number) {
        System.out.println("Message: " + message + ", Number: " + number);
    }
}
在上面的示例中,OverloadExample 类中定义了三个名为 showMessage 的方
法,它们具有不同的参数列表。第一个方法接收一个 String 类型的参数,第
二个方法接收一个 int 类型的参数,第三个方法接收一个 String 类型和一
个 int 类型的参数。
代码示例1
public class crj {
    public static void main(String[] args) {
        int  result = sum(10, 20);
        System.out.println(result);
        double result2 = sum(10.0, 20.);
        System.out.println(result2);
        int result3=sum(10,20,30);
        System.out.println(result3);
    }
    public static int sum(int a,int b){
        return a+b;
    }
    public static double sum(double a,double b){
        return a+b;
    }
    public static int sum(int a,int b,int c){
        return a+b+c;
    }
}

在这里插入图片描述

代码示例2----比较相等
public class crj {
    public static void main(String[] args) {
        System.out.println(compare(10,20));
        System.out.println(compare((byte) 10,(byte)20));
        System.out.println(compare((short) 10,(short) 20));
        System.out.println(compare( 10l,20l));
    }
    public static  boolean compare(int a,int b){
        System.out.println("int");
        return a==b;
    }
    public static  boolean compare(byte a,byte b){
        System.out.println("byte");
        return a==b;
    }
    public static  boolean compare(short a,short b){
        System.out.println("short");
        return a==b;
    }
    public static  boolean compare(long a,long b){
        System.out.println("long");
        return a==b;
    }
}

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

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

相关文章

Stage模型HarmonyOS服务卡片开发整体说明

服务卡片&#xff08;以下简称“卡片”&#xff09;是一种界面展示形式&#xff0c;可以将应用的重要信息或操作前置到卡片&#xff0c;以达到服务直达、减少体验层级的目的。卡片常用于嵌入到其他应用&#xff08;当前卡片使用方只支持系统应用&#xff0c;如桌面&#xff09;…

cyclo(Ser-Ser),23409-30-5,环(L-丝氨酰基-L-丝氨酰),具有明确的生物活性

​资料编辑|陕西新研博美生物科技有限公司小编MISSwu​ 产品描述&#xff1a; cyclo(Ser-Ser)&#xff08;CAS号&#xff1a;23409-30-5&#xff09;&#xff0c;环二肽(2,5-哌嗪二酮)是Z小的环肽&#xff0c;许多天然环二肽化合物都具有明确的生物活性&#xff0c;例如作为抗…

什么是矢量数据库?

我们正处于人工智能革命之中。它颠覆了它所接触的任何行业&#xff0c;承诺了伟大的创新 – 但它也带来了新的挑战。对于涉及大型语言模型、生成式 AI 和语义搜索的应用程序&#xff0c;高效的数据处理变得比以往任何时候都更加重要。 所有这些新应用程序都依赖于向量嵌入&…

【Android Framework系列】5章 AMS启动流程

1 AMS简介 AMS&#xff08;Activity Manager Service&#xff09;是Android中最核心的服务&#xff0c;管理着四大组件的启动、切换、调度及应用进程的管理和调度等工作。AndroidQ将Activity移到了ActivityTaskManagerService中&#xff0c;但也和AMS相关联。 AMS通过使用一些…

3.元素的显示与隐藏

类似网站广告, 当我们点击关闭就不见了, 但是我们重新刷新页面, 会重新出现! 本质:让一个元素在页面中隐藏或者显示出来。 display显示隐藏&#xff0c;不保留原来的位置visibility 显示隐藏&#xff0c;保留原来的位置overflow 溢出显示隐藏&#xff0c;只对溢出的部分进行处…

1000道网络安全必备面试题合集,秋招金九银十必看!!!

前言 以下为网络安全各个方向涉及的面试题&#xff0c;星数越多代表问题出现的几率越大&#xff0c;祝各位都能找到满意的工作。 注&#xff1a;本套面试题&#xff0c;已整理成pdf文档&#xff0c;但内容还在持续更新中&#xff0c;因为无论如何都不可能覆盖所有的面试问题&a…

Ctfshow web入门 PHP特性篇 web89-web151 全

web入门 PHP特性篇的wp都一把梭哈在这里啦~ 有点多&#xff0c;师傅们可以收藏下来慢慢看&#xff0c;写的应该挺全面的叭… 有错误敬请斧正&#xff01; CTFshow PHP web89 看题目&#xff0c;有个flag.php文件。题目要求get有个num&#xff0c;是数字但是不包含0-9。 intv…

【opencv之cv::Mat数据深拷贝和浅拷贝探讨】

cv::Mat数据深拷贝和浅拷贝 cv::Mat 拷贝方法实验测试1.matA matSrc2.matB(matSrc)3.matC matSrc.clone()4.matSrc.copyTo(matD) 很多时候写程序除了一个强大的架构&#xff0c;细节也很重要&#xff0c;俗话说的话细节决定成败嘛&#xff0c;在使用cv::Mat做图片处理的时候发…

C#(五十六)之线程池

线程池&#xff1a; 线程池是一种多线程的形式&#xff0c;其中的任务被添加到队列中&#xff0c;并在创建线程时自动启动。 ThreadPool类&#xff1a;以下都是静态方法&#xff1a;&#xff08;不需要new的&#xff09; GetAvailableThreads剩余空闲线程数 GetMaxThreads最…

生成token的两种方式

方式一&#xff1a;自定义工具类 手动编写代码&#xff0c;写两个方法&#xff0c;一个生成&#xff0c;一个解析&#xff1b; 第一步&#xff1a;导入依赖 <!--JWT令牌依赖--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjw…

i2c_tool的使用

文章目录 前言一、交叉编译i2c_tool二、板子上使用i2c_tool三、为什么不需要编写驱动也能够访问到对应设备四、命令行使用i2_tool操作AP3216模块五、使用i2c_tool代码操作IIC设备六、相关函数讲解1.open_i2c_dev2.int set_slave_addr 七、具体代码编写总结 前言 本篇文章将带大…

精益生产对制造业真的那么重要吗?

说到底是精益生产值不值得的问题。 重要且可得&#xff0c;那它就值得。国内的很多制造企业之所以对“精益生产”持怀疑甚至否度态度&#xff0c;大都经历过实施过程中的“水土不服”难题。抛砖引玉讲一下&#xff1a; 1、精益生产的最典型案例 1991年&#xff0c;在当时整个…

架构训练营笔记:可扩展设计

可扩展 复杂度模型 业务复杂度&#xff1a;业务固有的复杂度&#xff0c;主要体现为难以理解、难以扩展&#xff0c;例如业务数量多&#xff08;微信&#xff09;、业务流程长&#xff08;支付宝&#xff09;、业务之间关系复杂&#xff08;例如ERP&#xff09;。 质量复杂度…

基于单片机的智能空调系统的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;LCD1602液晶显示当前水温&#xff0c;定时提醒&#xff0c;水量变化DS18B20检测当前水体温度&#xff1b;水位传感器检测当前水位&#xff1b;继电器驱动加热片进行水温加热&#xff1b;定时提醒喝水&#xff0c;蜂鸣器报警&#x…

「网络编程」应用层协议_ HTTP协议学习及深入理解

「前言」文章内容大致是应用层协议的HTTP协议讲解。 「归属专栏」网络编程 「主页链接」个人主页 「笔者」枫叶先生(fy) 「枫叶先生有点文青病」「句子分享」 俗话说&#xff0c;开弓没有回头箭&#xff0c;唯有箭折、箭落、箭中靶子三种结果而已。 ——江晓英《苏东坡&#xf…

开源代码分享(6)—考虑实时市场联动的电力零售商鲁棒定价策略(附matlab代码)

摘要&#xff1a;电力零售商作为连接电力批发市场与零售市场的桥梁&#xff0c;是电力市场化改革中的重要主体&#xff0c;其经营效率直接决定了市场化改革的成败。然而电力零售商在运营过程中面临着用电量需求和价格双重不确定性的市场风险&#xff0c;亟需通过优化市场行为以…

Qt实现画板绘制椭圆

Qt在窗体中绘图在paintEvent函数中进行,使用QPainter类进行窗体绘制 如果只是简单的在paintevent中向画布绘制椭圆,由于实时绘制的许多个椭圆重合在一起,就会出现下面的情况 你可以在每次绘制椭圆之前调用清空画布 myPix->fill(Qt::white);但是又会出现下面的情况,无法…

一篇万字博客带你入门layUI

今日金句 心里种花&#xff0c;人生才不会荒芜 文章目录 一、什么是layui二、layui、easyui与bootstrap的对比2.1 layui和bootstrap对比&#xff08;这两个都属于UI渲染框架&#xff09;2.2 layui和easyui对比 三、layui入门3.1 引入3.2 入门案例&#xff1a;点击弹出框3.3 经…

数学建模———层次分析法及其matlab语法,函数和代码实现

层次分析法思想登场 建模比赛中最基础的模型之一&#xff0c;其主要用于解决评价类问题&#xff08;例如&#xff1a;选择那种方案最好&#xff0c;哪位运动员或者员工表现的更优秀。&#xff09; 评价类问题字眼&#xff1a; 评价的目标是什么&#xff1f;达到这个目标有那…

flutter开发实战-dio文件下载实现

flutter开发实战-dio文件下载实现 在开发中&#xff0c;需要下载文件&#xff0c;这里使用的是dio dio 是一个强大的 Dart HTTP 请求库&#xff0c;支持全局配置、Restful API、FormData、拦截器、 请求取消、Cookie 管理、文件上传/下载、超时以及自定义适配器等。 一、引入d…