Java输入总结+方法的使用

输入的总结

Java的输入和C的输入有所不同,它有着花里胡哨的输入类型

要输入字符串/整数/浮点数最好的方法是用到Scanner

首先导入util包
import java.util.Scanner;

import java.util.Scanner;

Scanner sc = new Scanner(System.in); 
System.out.println("请输入你的姓名:"); 
String name = sc.nextLine(); 
System.out.println("请输入你的年龄:"); 
int age = sc.nextInt(); 
System.out.println("请输入你的工资:"); 
float salary = sc.nextFloat(); 
System.out.println("你的信息如下:"); 
System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary); 
sc.close(); // 注意, 要记得调用关闭方法

在最开始写上Scanner (随便什么)=new Scanner(System.in);
之后要用什么类型就(随便什么).next(类型)

使用 Scanner 循环读取 N 个数字

import java.util.Scanner;
public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        double sum=0.0;
        int count=0;
        while(scanner.hasNextDouble()){
            double tmp=scanner.nextDouble();
            System.out.println(tmp);
            sum+=tmp;
            count++;
        }
        System.out.println("sum="+sum);
        System.out.println(count);
    }

这样这个程序段输出结果是什么呢?
在这里插入图片描述
可以看到我利用ctrl+D来结束一直的输入, 当循环输入多个数据的时候, 使用 ctrl + d 来结束输入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl +
d).

字符串的输入

字符串的输入有两种方法

String str1=scanner.next();//遇到空格就退出来了
String str2=scanner.nextLine();//可以读到空格,但要尽量放在最上面

区别我已经写在代码片上了,字符串的输入还是跟C有很大区别的

方法:

所谓方法就是函数,它能让一段代码重复多次使用,减少工程量
// 方法定义
public static 方法返回值 方法名称([参数类型 形参 …]){
方法体代码;
[return 返回值];
}
// 方法调用
返回值变量 = 方法名称(实参…);

实参和形参

对于基础类型(int,char等八个)来说, 形参相当于实参的拷贝. 即传值调用,他们在函数里面的改变不会影响到原实参
而引用类型(String,数组,类,接口,枚举,抽象类)形参的改变也会影响到实参,即传址调用

方法的调用

Java方法调用就跟函数调用一样,值得注意的是Java没有指针类型,Java的调用需要在栈上开辟栈帧,调用完后栈帧的值就被系统回收了。

方法的重载

同一个方法名字, 提供不同版本的实现, 称为方法重载
对于重载来说需要:
1.方法名相同
2.方法的参数不同(参数个数或者参数类型)
3.方法的返回值类型不影响重载

class Test {
 public static void main(String[] args) {
 int a = 10;
 int b = 20;
 int ret = add(a, b);
 System.out.println("ret = " + ret);
 }
 public static int add(int x, int y) {
 return x + y;
 }
 public static double add(int x, int y) {
 return x + y;
 }
}

比如这样一串代码中add方法就能够实现整型和double型的加法操作

方法的递归(重点)

递归的两个必要条件:
1.存在限制条件,当满足这个限制条件的时候,递归便不再继续
2.每次递归调用之后越来越接近这个限制条件
递归也可以这样来理解,叫递过去,又归回来,什么意思呢?就是不断得把参数给递下去,最后又把返回值给一个一个归回来。比如很经典的一个递归调用题:按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4)

public static void main(String[] args) {
        int a=1234;
        print(a);
    }

    public static void print(int a){
        if(a>9)
            print(a/10);
        System.out.print(a%10+" ");
    }

这个递归的限制条件就是a>9?如果是的,那么把a的值变成下一个递归中的数字。这里通过a/10一段段得访问到递归元素的过程就是递过去,而且它在不断得接近这个限制条件a<9。
当a<9时,if语句结束,输出a%10;print(a/10)语句结束,运行输出语句,不断得归回去,最后到最上面的递归,代码结束。

Java中的递归和C没什么两样,依旧要满足这两个条件,递归没有什么技巧,多练多写才行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值