Java(基础)day02 输入、输出、数组、重载、递归
目录
一、输出到控制台
二、从键盘输入
1、使用 Scanner 读取字符串/整数/浮点数
2、使用 Scanner 循环读取 N 个数字,并求取其平均值
三、重载
四、递归
五、数组创建
1、动态初始化和静态初始化
2、C++与Java创建数组的对比
3、Java中对于数组的遍历
4、斐波那契数列数组的打印
5、to_string 函数在c++和Java中的对比
6、数组复制函数
7、二维数组
一、输出到控制台
printf格式化输出表
二、从键盘输入
import java.util.Scanner; // 导入util包
public class test_cin
{
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);
// Function_Calls();System.out.println("请输入你的姓名:");
String name = sc.nextLine();
sc.close(); // 注意,要记得调用关闭方法
}
}
1、使用 Scanner 读取字符串/整数/浮点数
import java.util.Scanner; // 导入util包public class test_cin
{public static void main(String[] args){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(); // 注意,要记得调用关闭方法}
}
2、使用 Scanner 循环读取 N 个数字,并求取其平均值
import java.util.Scanner;
public class test_average
{public static void main(String[] args){Scanner sc = new Scanner(System.in);int sum = 0;int num = 0;while(sc.hasNextInt()){int tmp = sc.nextInt();sum += tmp;num++;}System.out.println("sum = " + sum);System.out.println("num = " + num);sc.close();}
}
三、重载
在自然语言中,一个词语如果有多重含义,那么就说该词语被重载了,具体代表什么含义需要结合具体的场景。 在Java中方法也是可以重载的。
在Java中,如果多个方法的名字相同,参数列表不同,则称该几种方法被重载了。
1. 方法名必须相同
2. 参数列表必须不同(参数的个数不同、参数的类型不同、类型的次序必须不同)
3. 与返回值类型是否相同无关
4. 编译器在编译代码时,会对实参类型进行推演,根据推演的结果来确定调用哪个方法
public class TestMethod
{public static void main(String[] args) {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) }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;}
}
四、递归
public class test_digui
{public static void main(String[] args){int n = 5;int ret = factor(n);System.out.println(ret);}public static int factor(int n){System.out.println("函数开始,n = " + n);if(n == 1){System.out.println("函数结束, n = 1 ret = 1");return 1;}int ret = n * factor(n-1);System.out.println("函数结束, n = " + n + "ret = " + ret);return ret;}
}
五、数组创建
1、动态初始化和静态初始化
动态初始化:在创建数组时,直接指定数组中元素的个数
int[] array = new int[10];
静态初始化:在创建数组时不直接指定数据元素个数,而直接将具体的数据内容进行指定
int[] array1 = new int[]{0,1,2,3,4,5,6,7,8,9};double[] array2 = new double[]{1.0, 2.0, 3.0, 4.0, 5.0};String[] array3 = new String[]{"hell", "Java", "!!!"};
2、C++与Java创建数组的对比
T[ ] 数组名 = new T[ N ];
T : 表示数组中存放元素的类型
T[]: 表示数组的类型
N:表示数组的长度
注意:下行代码不合法,是本人和vector初始化搞错
int* arr = new int[5] = {1,2,3,4,5}; 错误
int* arr = new int[5]; arr[0] = 1; arr[1] = 2; arr[2] = 3; arr[3] = 4; arr[4] = 5;
vector<int> arr = {1,2,3,4,5}; 合法
3、Java中对于数组的遍历
public class test_vector
{public static void main(String[] args){int[] arr = new int[]{1,23,4,5,6};for(int i = 0; i < arr.length; i++){System.out.println(arr[i]);}for(int x : arr){System.out.println(x);}}
}
4、斐波那契数列数组的打印
public class tset_func_fib
{public static int[] fib(int n){if(n <= 0)return null;int []array = new int[n];array[0] = array[1] = 1;for(int i = 2; i < n; i++){array[i] = array[i-1] + array[i-2];}return array;}public static void main(String []args){int[] array = fib(10);for(int i = 0; i < array.length; i++){System.out.println(array[i]);}}
}
5、to_string 函数在c++和Java中的对比
to_string
包含在头文件 string 里
to_string是一个将各种数转换成字符串的函数,返回值为string类型。std::string to_string(int value); (1) (C++11起)
std::string to_string(long value); (2) (C++11起)
std::string to_string(long long value); (3) (C++11起)
std::string to_string(unsigned value); (4) (C++11起)
std::string to_string(unsigned long value); (5) (C++11起)
std::string to_string(unsigned long long value); (6) (C++11起)
std::string to_string(float value); (7) (C++11起)
std::string to_string(double value); (8) (C++11起)
std::string to_string(long double value); (9) (C++11起)
#include <iostream>
#include <string> using namespace std;int main()
{double d = 3.14;string s;s = to_string(d);cout << s << endl;return 0;}
Java用法
import java.util.Arrays;public class test_to_string
{public static void main(String[] args){int[] arr = {1,2,3,4,5};String newArr = Arrays.toString(arr);System.out.println(newArr);}
}
6、数组复制函数
import java.util.Arrays;public class test_copyOf
{public static void main(String[] args){int[] arr = {1,2,3,4,5};int[] newarr = arr;//newarr[0] = 10;System.out.println("arr:" + Arrays.toString(arr));arr[0] = 10;newarr = Arrays.copyOf(arr, arr.length);System.out.println("newArr:" + Arrays.toString(newarr));}
}
7、二维数组
public class test_two_dim_arr
{public static void main(String[] args){int[][] arr = {{1,2,3},{4,5,6},{7,8,9,10}};for(int i = 0; i < arr.length; i++){for(int j = 0; j < arr[i].length; j++){System.out.print(arr[i][j] + " ");}System.out.println();}}
}