学Java的第5天


Scanner对象

  • 可以通过Scanner类获取用户输入
  • 基本语法:
Scanner sc = new Scanner(System.in);
  • 通过Scanner类的next()和nextLine()方法获取输入的字符串,在读取前一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。

next()

  1. 一定要读取到字符后才可以结束输入。
  2. 对输入有效字符前遇到的空白,next()方法会自动将其去掉。
  3. 只有输入有效字符后才将其后面的空白作为分隔符或者结束符。
  4. next()不能得到带有空格的字符串。

nextLine()

  1. 以Enter为结束符,返回输入回车前的所有字符。
  2. 可以获取空白。

close()

每次使用完Scanner类记得Scanner.close();
可以节约内存。

对数据类型要求

例如:
nextInt();要求输入整数,对应的有hasNextInt();
nextFloat();要求输入小数,对应的有hasNextFloat();
以此类推……

顺序结构

按照顺序依次执行

if选择结构

if单选择结构

语法:

if(布尔表达式){
  //如果布尔表达式为true时要执行的语句
};

if双选择结构

语法:

if(布尔表达式){
  //如果布尔表达式为true时要执行的语句
}else{
  //如果布尔表达式为false时要执行的语句
};

if多选择结构

语法:

if(布尔表达式1){
  //如果布尔表达式1为true时要执行的语句
}else if(布尔表达式2){
  //如果布尔表达式2为true时要执行的语句
}else if(布尔表达式3){
  //如果布尔表达式3为true时要执行的语句
  ……
  ……
  ……
}else{
  //如果以上所有布尔表达式为false时要执行的语句
};

嵌套的if结构

允许套娃

switch多选择结构

switch case语句判断一个变量与一系列值中的某个值是否相等,每个值称为一个分支。
变量类型可以是byte、short、int、char或者字符串。

语法:

int a=new Scanner(System.in).nextInt();
switch (a){
        case 1:
            System.out.println("输入的1");
            break;
        case 2:
            System.out.println("输入的2");
            break;
        case 3:
            System.out.println("输入的3");
            break;
        default:
            System.out.println("输入其他");
    }

循环结构

while循环

语法:

while (循环条件布尔表达式){
        //循环体执行的语句
    }

只要布尔表达式的值为true就会一直执行
应该避免死循环

do……while循环

do {
        //循环体执行的语句
    }while (循环条件布尔表达式)

区别在于会至少会先执行 1次 后,再判断是否循环执行

for循环

已知循环次数的情况下选for循环
语法:

for(初始化;布尔表达式;迭代){
  //执行的代码
}

for循环可以嵌套

示例九九乘法表:

for (int i=1;i<=9;i++){
        for (int j = 1; j <= i; j++) {
            System.out.print(j+"*"+i+"="+j*i+"  ");
        }
        System.out.println("\n");
    }

增强for循环

一般用来遍历数组
语法:

for(声明语句:表达式){
  //执行的代码
}

示例遍历数组:

int[] array = {1, 2, 3, 4, 5};
    for (int x : array) {
        System.out.println(x);
    }

break和continue

break结束整个循环
continue退出本次循环

方法

Java方法是语句的集合,它们在一起执行一个功能。
一个方法只完成1个功能,有利于后期的扩展。

方法的定义

  • 修饰符:可选如public
  • 返回值类型:如void
  • 方法名:驼峰原则命名
  • 参数类型:
    • 形参:在方法被调用时用于接收外界输入的数据
    • 实参:调用方法时实际传递给方法的数据
  • 方法体:方法体具体语句,实现方法的功能
修饰符 返回值类型 方法名(参数类型 参数名){
    ……
    方法体
    ……
    return 返回值;
}

方法的调用

有返回值的当作赋值变量来传参调用
无返回值的直接调用

方法的重载

重载就是在一个类中,有相同的函数名称,但形参不同的函数

方法重载的规则:

  • 方法名称必须相同
  • 参数列表必须不同(个数不同或类型不同,排列不同也算)
  • 方法的返回类型可以相同也可以不同
  • 仅仅返回类型不同不足以成为方法的重载

可变参数

在方法声明中,在指定参数类型后加一个…号。
可变参数必须是方法的最后一个参数

方法的递归调用

递归就是方法自己调用自己
递归结构包括两部分:

  • 递归头:什么时候不调用自身方法,如果没有递归头将陷入死循环
  • 递归体:什么时候需要调用自身方法

常用与阶乘:

public static int f(int n) {
    if (n == 1) {
        return 1;
    } else {
        return n * f(n - 1);
    }
}

文章作者: 泷少
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 泷少 !
评论
  目录