java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > java输入输出及方法

从零彻底学会java输入输出以及方法

作者:code斗

在Java编程中控制台输入输出是基础中的基础,这篇文章主要介绍了java输入输出以及方法的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下

一.java的输出

1.1 输出到控制台

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

println打印自带换行,print打印不带换行,而printf打印是格式化打印和C语言中的一致

这个表格没必要记住,⽤到的时候根据需要查⼀下就⾏了.

二.java的输入

2.1 从键盘单组输入

2.1.1 Scanner 基本使用

使⽤ Scanner 读取字符串/整数/浮点数,需要先导⼊该类(后面会详细学习导入):

Scanner scan = new Scanner(System.in);

System.out.println("请输入你的名字");
String name = scan.nextLine();

System.out.println("请输入你的年龄");
int age = scan.nextInt();

System.out.println("请输入你的工资");
double salary = scan.nextDouble();

scan.close(); // 注意:使用完成后要调用关闭方法

2.1.2 注意事项

1. 输入顺序问题

名字和年龄的输入顺序不能交换,否则会出现问题:

正常运行结果

不正常运行结果

2. Scanner 关闭

重要:既然调用了 Scanner,就要记得关闭!使用完成后必须调用 close() 方法释放资源。

3. 数据类型匹配

4. 解决换行问题的方法

如果确实需要先读取数字再读取字符串,可以使用以下方法:

Scanner scan = new Scanner(System.in);

System.out.println("请输入你的年龄");
int age = scan.nextInt();
scan.nextLine(); // 消耗掉换行符

System.out.println("请输入你的名字");
String name = scan.nextLine();

scan.close();

2.2从键盘多组输入

在一个程序题目中我们经常看到要多组输入,该怎么做呢

//⽰例:使⽤Scanner循环读取N个数字,并求取其平均值
Scanner scan = new Scanner(System.in);
        double sum = 0;
        int num = 0;
        while(scan.hasNext()){
          double x = scan.nextDouble();
            sum+=x;
            num++;
        }
        System.out.println("avg = " + sum / num);
        scan.close();

可以看见多组输入的关键是while(scan.hasNext())

三.Java中的方法

3.1方法的定义

方法和C语言中的函数类似,主要由修饰符,返回值类型,方法名称,参数及其代码构成

修饰符 返回值类型 ⽅法名称([参数类型 形参 ...]){
 ⽅法体代码;
 [return 返回值];
}

3.2方法的示例

示例一:实现⼀个函数,检测⼀个年份是否为闰年

public class Test {
    public static boolean isLeapYear(int year) {
        if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
            return true;
        }
        return false;
    }

    public static void main(String[] args) {
        //实现⼀个函数,检测⼀个年份是否为闰年
        Scanner Scan = new Scanner(System.in);
        int year = Scan.nextInt();
        System.out.println(isLeapYear(year));
    }
}

示例二:实现⼀个两个整数相加的⽅法

public class TEST {
    public static int add(int x,int y){
        return x+y;
    }
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int x = scan.nextInt();
        int y = scan.nextInt();
        System.out.println(add(x, y));
    }
}

3.3使用方法的注意事项

3.4方法的调用

示例:计算1!+2!+3!+4!+5!

    public static int fac(int x){
        int ret = 1;
        for(int i=1;i<=x;i++){
            ret*=i;
        }
        return ret;
    }

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        while(scan.hasNext()){
            int x = scan.nextInt();
            System.out.println(fac(x));
        }
    }

注意

  • 在Java中,实参的值永远都是拷⻉到形参中,形参和实参本质是两个实体.区别于C语言,Java中⽆法获取栈上的局部变量的地址,如果想要通过形参改变实参,我们需要具备类和对象的知识*

3.5方法的重载

当既想计算两个整数相加,也想计算两个⼩数相加的时候,此时会出现参数类型不匹配的情况,如果想要计算那就要写两个方法名,有没有不那么繁琐的方法呢?

public static int addInt(int x, int y) {
 return x + y;
 }
 public static double addDouble(double x, double y) {
 return x + y;
 }
public static int add(int x, int y) {
 return x + y;
 }
 public static double add(double x, double y) {
 return x + y;
 }
 public static double add(double x, double y, double z) {
 return x + y + z;
 }

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

add(1, 2); // 调⽤add(int, int) 
add(1.5, 2.5); // 调⽤add(double, double) 
add(1.5, 2.5, 3.5); // 调⽤add(double, double, double) 

方法重载的注意事项

3.6递归

//递归求N的阶乘
public static int fac(int x){
    if(x==1){
        return 1;
    }else{
        return x*fac(x-1);
    }
}

    public static void main(String[] args) {
        System.out.println(fac(5));
    }

调用过程

总结

到此这篇关于java输入输出以及方法的文章就介绍到这了,更多相关java输入输出及方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文