Java 逻辑控制 输入输出 方法

目录

一、逻辑控制

1、分支结构(if、switch)

2、循环结构(while、for、do while)

二、输入输出

1、输出

2、输入

三、方法

1、自定义方法

2、传值调用和传址调用

2.1 传值调用

2.2 传址调用

3、重载

4、方法签名

3.1 具体操作

3.2  特殊符号说明

5、递归 


一、逻辑控制

1、分支结构(if、switch)

(1)if语句 的判断条件只能是布尔表达式(  结果是true和false,没有零和非零!)

(2)switch语句 括号内只能是以下类型的表达式:

基本类型byte、char、short、int( 不能是long!)
引用类型String常量串、枚举类型

(3)不要遗漏 break 喔

2、循环结构(while、for、do while)

(1)while循环 的判断条件只能是布尔表达式(  结果是true和false,没有零和非零!)

(2)do while循环 最后的分号不要忘记


二、输入输出

1、输出

(1)基本语法

System.out.println();    //输出并且换行

System.out.print();      //仅输出

System.out.printf();     //类似C语言的输出

(2)printf  输出到控制台(还有很多,没必要记,需要的时候上CSDN查查就好啦)

转换符类型举例
b布尔值("%b",100)true
h散列码("%h",100)64
%百分号("%.2f%%",9.99f)9.99%

2、输入

(1)循环输入格式

当循环输入多个数据的时候,  idea 上使用 ctrl + d 来结束输入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl + d)。

//IDEA 2022
public class Test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNextInt()){         //输入 3 这就是循环输入
            int num = sc.nextInt();    
            System.out.println(num);    //输出 3
        }
    }
}

三、方法

1、自定义方法

与C语言的 “函数” 类似。

public class Test {
    public static void main(String[] args) {
        System.out.println(add(2, 3));
    }

    //自定义方法
    public static int add(int a,int b){
        return a + b;
    }
}

【注意】

  1. 修饰符:现阶段直接使用public static 固定搭配
  2. 返回值类型:如果方法有返回值,返回值类型必须要与返回的实体类型一致,如果没有返回值,必须写成 void
  3. 方法名字:采用小驼峰命名
  4. 参数列表:如果方法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使用逗号隔开
  5. 方法体:方法内部要执行的语句
  6. 在java当中,方法必须写在类当中
  7. 在java当中,方法不能嵌套定义
  8. 在java当中,没有方法声明一说 

2、传值调用和传址调用

2.1 传值调用

Java的传值调用跟C语言类似,实参的值永远都是拷贝到形参中,形参和实参本质是两个实体

可以参考C 深入指针(1)-CSDN博客中传值调用部分。

2.2 传址调用

Java并没有&取地址操作符这些,那如果需要交换两个值该如何做呢?

Java中通过:传引用类型参数 (例如数组来解决这个问题)

public class TestMethod {
    public static void main(String[] args) {
        int[] arr = {10, 20};   //交换 arr[0] 和 arr[1] 的值
        swap(arr);
        System.out.println("arr[0] = " + arr[0] + " arr[1] = " + arr[1]);
    }
    public static void swap(int[] arr) {
        int tmp = arr[0];
        arr[0] = arr[1];
        arr[1] = tmp;
    }
}
//输出结果
//arr[0] = 20 arr[1] = 10

3、重载

在Java中,如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了。

public class Test {
    public static void main(String[] args) {
        System.out.println(add(2, 3));
        System.out.println(add(2.1, 3.9));
    }

    public static int add(int a,int b){
        return a + b;
    }

    public static double add(double a,double b){
        return a + b;
    }
}

【注意】

  1. 方法名必须相同
  2. 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)
  3. 与返回值类型是否相同无关

4、方法签名

在同一个作用域中不能定义两个相同名称的变量。比如:方法中不能定义两个名字一样的变量,那为什么类中就可以定义方法名相同的方法呢?

方法签名即:经过编译器编译修改过之后方法最终的名字。

具体方式:方法全路径名+参数列表+返回值类型,构成方法完整的名字。

3.1 具体操作

先对工程进行编译生成.class字节码文件,编译(Run)之后,跟着下面走

 一直点下去,直到看到Test.class

 输入:javap -v 字节码文件名字即可,比如我的是输入 javap -v Test

3.2  特殊符号说明

特殊字符数据类型
Vvoid
Zboolean
Bbyte
Cchar
Sshort
Iint
Jlong
Ffloat
Ddouble
[数组(以[开头,配合其他的特殊字符,表述对应数据类型的数组,几个[表述几维数组)
L引用类型,以L开头,以;结尾,中间是引用类型的全类名

5、递归 

有个例子可以很好的理解递归(反正就是自己调用自己)

//记得放在 类 中才能运行
//求 N 的阶乘
    public static int funcN(int N){
        if(N == 1){
            return 1;
        }
        return N*funcN(N-1);
    }
    
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        System.out.println(funcN(N));
    }


完 

  • 22
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值