java基础1

java基础

一、Scanner学习

1. 接收用户输入数据的方法

  • next():获取一个字符串
  • nextLine():获取一整行字符串

2. 判断用户是否有数据输入的方法

  • hasNext():检查是否有非空字符
  • hasNextLine():检查输入中是否还有linePattern

3. 建议方案

采用hasNextXxxx() 的话,后面也要用nextXxxx():

  • 前面用hasNextLine(),那么后面要用 nextLine() 来处理输入;
  • 前面要使用 hasNext(),那么后面要用 nextInt() 来处理输入。

二、结构

1. 顺序结构

2. 选择结构

  • if 结构
if (条件表达式) {
    语句块;
}
  • if-else结构
if (表达式) {
    语句块1;
} else {
    语句块2;
}
  • 多条件 if-else-if 语句
if(表达式1) {
    语句块1;
} else if(表达式2) {
    语句块2;
...
} else if(表达式n) {
    语句块n;
} else {
    语句块n+1;
}
  • if嵌套使用
if(表达式1) {
    if(表达式2) {
        语句块1;
    } else {
        语句块2;
    }
} else {
    if(表达式3) {
        语句块3;
    } else if(表达式4) {
        语句块4;
    } else {
        if(表达式n) {
            语句块n;
        } else {
            语句块n+1;
        }
    }
}
  • switch选择结构
switch(表达式) {
    case 值1:
        语句块1;
        break;
    case 值2:
        语句块2;
        break;
    …
    case 值n:
        语句块n;
        break;
    default:
        语句块n+1;
    	break;
}

3. 循环结构

  • while循环
while(条件表达式) {
    语句块;
}
  • do-while循环
do {
    语句块;
}while(条件表达式);

while 循环和 do-while 循环的不同处如下:

  • 语法不同:与 while 循环相比,do-while 循环将 while 关键字和循环条件放在后面,而且前面多了 do 关键字,后面多了一个分号。
  • 执行次序不同:while 循环先判断,再执行。do-while 循环先执行,再判断。
  • 一开始循环条件就不满足的情况下,while 循环一次都不会执行,do-while 循环则不管什么情况下都至少执行一次。

  • for循环
for(条件表达式1;条件表达式2;条件表达式3) {
    语句块;
}
表达式 形式 功能 举例
条件表达式 1 赋值语句 循环结构的初始部分,为循环变量赋初值 int i=1
条件表达式 2 条件语句 循环结构的循环条件 i>40
条件表达式 3 迭代语句,通常使用 ++ 或 -- 运算符 循环结构的迭代部分,通常用来修改循环 变量的值 i++

for 循环语句执行的过程为:

首先执行条件表达式 1 进行初始化,然后判断条件表达式 2 的值是否为 true,如果为 true,则执行循环体语句块;否则直接退出循环。最后执行表达式 3,改变循环变量的值,至此完成一次循环。接下来进行下一次循环,直到条件表达式 2 的值为 false,才结束循环。

for 语句中初始化、循环条件以及迭代部分都可以为空语句(但分号不能省略),三者均为空的时候,相当于一个无限循环。

for、do-while、while三者区别

名称 概念 适用场景 特点
for 根据循环次数限制做多少次重复操作 适合循环次数是已知的操作 初始化的条件可以使用局部变量和外部变量使用局部变量时,控制执行在 for 结束后会自动释放,提高内存使用效率。且变量在 for 循环结束后,不能被访问。先判断,再执行
while 当满足什么条件的时候,才做某种操作 适合循环次数是未知的操作 初始化的条件只能使用外部变量,且变量在 while 循环结束后可以访问先判断,再执行
do-while 先执行一次,在判断是否满足条件 适合至少执行一次的循环操作 在先需要执行一次的情况下,代码更加简洁。先执行一次,再判断
  • 增强for循环
for(类型 变量名:集合) {
    语句块;
}

三个注意点

  • break:表示跳出当前层循环
  • continue:表示跳出本次循环,进入下一次循环
  • return:跳出当前方法的循环

三、方法重载

1. 定义

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

2. 方法重载规则

  • 方法名称必须相同
  • 参数列表必须不同(个数不同、参数类型不同、参数排列顺序不同)

四、可变参数

public static void main(String[] args) {
    double result = method(new double[]{1, 2, 3});
    System.out.println(result);
}

public static double method(double... numbers) {
    if (numbers.length == 0) {
        System.out.println("您为输入值");
    }
    double max = numbers[0];
    for (double number : numbers) {
        if (number > max) {
            max = number;
        }
    }
    return max;
}

五、递归

包括两部分

  • 递归头:什么时候不调用自身。如果没有头,则将陷入死循环
  • 递归体:什么时候调用自身方法
public static void main(String[] args) {
    int result = method(5);
    System.out.println(result);
}

public static int method(int num) {
    if (num == 1) {
        return 1;
    }
    return num*method(num-1);
}

注意:递归一般选择数据比较小的数

posted @ 2021-05-06 14:43  HXB_Blog  阅读(71)  评论(0)    收藏  举报