当前位置: 首页 > news >正文

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();}}
}

相关文章:

  • 零基础设计模式——设计模式入门
  • SRS流媒体服务器(6)源码分析之推流篇
  • 范围管理的实践策略与创新应用
  • 博图1200硬件组态与启保停程序编写步骤详解
  • java的arraylist集合
  • 基于SpringBoot的家政预约系统
  • 鸿蒙 Background Tasks Kit(后台任务开发服务)
  • 全局配置文件
  • 如何确保低空经济中的数据安全?
  • Flink概述
  • 排序复习/下(C语言版)
  • Scala语言基础与函数式编程详解
  • Web3:Ubuntu系统 使用Docker-compose方式部署blockscout浏览器配置版本-v5.2.3-beta+charts图表
  • Web 技术与 Nginx 网站环境部署
  • 大数据hadoop小文件处理方案
  • CRMEB多商户预约服务上门师傅端
  • 可编辑98页PPT | 某大型制造业数字化转型战略规划项目方案
  • 使用PowerShell备份和还原Windows环境变量
  • vue2.0 组件生命周期
  • MYSQL故障排查和环境优化
  • 家国万里·时光故事会|从徐光启到徐家汇,一颗甘薯里的家国
  • 国家发改委:不断完善稳就业稳经济的政策工具箱,确保必要时能够及时出台实施
  • 牛市早报|年内首次存款利率下调启动,5月LPR今公布
  • 黄仁勋的新逻辑:从“卖铲人”到“全球AI基建运营商”
  • 揭秘拜登退选内幕新书引争议,“垃圾信息在四处传播”?
  • 特朗普与普京通话前夕,英美法德意领导人通话讨论俄乌问题