Java输入输出和方法的使用
·
1,输出
3种方式
System.out.println("abc");//自带换行
System.out.print("abc");//不带换行
System.out.printf("%s","abc");//格式化输出
一般printf使用的很少,用的最多的是println,所以printf需要的占位符需要时在网上找即可。
2,输入
2.1 一组输入
Scanner sc = new Scanner(System.in);
System.out.println("请输入你的姓名");
String name = sc.nextLine();
System.out.println("请输入你的年龄");
int age = sc.nextInt();
System.out.println("请输入你的工资");
double salary = sc.nextDouble();
System.out.println("姓名"+name+"年龄"+age+"工资"+salary);
sc.close();
-
new只需要创建一次
- nextLine可以跳过空格
- 类型不匹配会报错
- 最后需要close关闭
2.2 多组输入
多组输入求和
Scanner sc = new Scanner(System.in);
int sum = 0;
while (sc.hasNextInt()) {
int i = sc.nextInt();
sum += i;
}
System.out.println(sum);
在idea中想要停止按ctrl+d,cmd中按ctrl+z
2.3 猜数字游戏
Random random = new Random();
Scanner sc = new Scanner(System.in);
int toGuess = random.nextInt(100);//生成1~100的随机数
System.out.println(toGuess);
System.out.println("请输入数字(1~100)");
while (true) {
int num = sc.nextInt();
if(num < toGuess) {
System.out.println("猜小了");
}else if(num > toGuess) {
System.out.println("猜大了");
}else {
System.out.println("猜对了");
break;
}
}
sc.close();
3,方法
方法好比是加工厂,你给他一个原料他就能加工出产品
3.1 方法的语法
修饰符 返回值类型 方法名称(参数类型 形参1,形参2...) {
//方法体代码
return 返回值;
}
示例1
方法判断年份是不是闰年
public static boolean estimateLeapYear(int y) {
if(((y % 4 == 0) && (y % 100 != 0) || (y % 400 == 0))) {
return true;
}
return false;
}
示例2: 实现⼀个两个整数相加的方法
public static int add(int x,int y) {
return x+y;
}
【注意事项】
- 返回值类型::如果⽅法有返回值,返回值类型必须要与返回的实体类型⼀致,如果没有返回值,必须写成void
- 方法名:用小驼峰命名(首字母小写,其他单词首字母大写)
- 参数列表:如果⽅法没有参数,()中什么都不写,如果有参数,需指定参数类型,多个参数之间使⽤逗号隔开
- Java中方法必须写在类里面,方法不能嵌套,方法没有声明
3.2 方法的调用
public static int add(int x,int y) {
return x+y;
}
public static void main(String[] args) {
int ret = add(10,20);
System.out.println(ret);
}
- 只有调用才会执行方法里的代码
- 调⽤⽅法的时候,需要使⽤⽅法名+参数列表的形式进⾏调⽤
- 方法有返回值必须接受返回值
【示例】计算1!+2!+3!+4!+5!
public static int facSum(int num) {
int sum = 0;
for (int i = 1; i <= num; i++) {
sum += fac(i);
}
return sum;
}
public static int fac(int num) {
int fac = 1;
for (int i = 1; i <= num; i++) {
fac *= i;
}
return fac;
}
public static void main(String[] args) {
int ret = facSum(5);
System.out.println(ret);
}
分成不同的方法的好处是:很灵活,后续需要其他功能时也可以很容易加。
3.3 形参和实参的关系
Java中⽅法的形参就相当于add函数中的⾃变量x,y,⽤来接收add函数在调⽤时传递的值的。形参的名字可以随意取,对⽅法都没有任何影响,形参只是⽅法在定义时需要借助的⼀个变量,⽤来保存⽅法在调⽤时传递过来的值。
public static int add(int x,int y) {//形参
return x+y;
}
public static void main(String[] args) {
int ret = add(10,20);//实参
System.out.println(ret);
}
注意:形参是对实参的临时拷贝,形参和实参是两个不同的实体
swap交换
public static void swap(int x,int y) {
int tmp = 0;
tmp = x;
x = y;
y = tmp;
}
public static void main(String[] args) {
int a = 10;
int b = 20;
System.out.println("交换前a = "+a+" b = "+b);
swap(a,b);
System.out.println("交换后a = "+a+" b = "+b);
}
//交换前a = 10 b = 20
//交换后a = 10 b = 20
形参发生了交换但是不会影响实参
在Java当中是⽆法获取栈上的局部变量的地址的,如果要发⽣实参的交换,我们需要具备类和对象的知识
3.4 方法的重载
public static int add(int x,int y) {
return x+y;
}
public static double add(double x,double y) {
return x+y;
}
如果两个方法功能一样但是有所区别,我们就可以用方法重载,这样就不需要起不同的方法名和记忆方法名了。
怎样构成方法重载?
- 方法名必须相同
- 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)
- 与返回值类型是否相同⽆关
以下不能构成重载
public static int add(int x,int y) {
return x+y;
}
public static double add(int x,int y) {
return x+y;
}
方法签名:经过编译器编译修改过之后⽅法最终的名字。具体⽅式:⽅法全路径名+参数列表,构成⽅法完整的名字
总结:本文主要学习了输出,输入以及有关方法的知识,主要掌握多组输入,方法的语法以及方法的重载
更多推荐


所有评论(0)