Skip to content

❤️ 从控制台获取数据

  • Scanner
    • hasNextInt() 判断是否还有 int 数据
    • nextInt() 接收到 int 数据
java
Scanner sc = new Scanner(System.in);  // 首先创建Scanner对象
int i = sc.nextInt();  // 接收数据,nextInt与int对应

❤️ 分支语句

if…else…

java
if(关系表达式1){
	语句体1;             
}else if(关系表达式2){
	语句体2;
}else{
	语句体3;
}

if

如果在 if 语句中加入 return ,会在执行完 if 语句之后不在执行跟 if 同级别,同一缩进下的语句

java
if() {
	代码 A;

	return;
}
代码 B

switch

  • 用表达式的值和 case 的值做比较,相等就输出对应语句体的内容
  • 不相等就继续向下比较
  • break 结束此次 switch
java
switch (1) {  
	case 2:  
		System.out.println(2);  
		break;               //结束switch语句
	case 3:  
	case 1:  
		System.out.println("1或3");  
		break;  
	default:               //当所有情况都不匹配时,就执行此处的内容。
		System.out.println("没有");  //即使情况符合,没有break,也会执行default
}  

1或3

如果有一步没有加 break,那么下一步不会判断 case,而是直接执行语句体,直到遇见 break 或 default

java
switch (1) {  
    case 1:  
        System.out.println(2);  
    case 3:  
    case 4:  
        System.out.println("1或3");  
        break;  
    default:  
        System.out.println("没有");  
}


2
1或3

增强 switch

  • 支持返回值
java
// 在外部定义awardId返回值,执行完方法之后可以自动赋值
Integer awardId = switch (filterParam.getDispatchParam()) {  
    case CommonAwards -> strategyDispatch.getRuleCommonAwardIdByRandom(filterParam.getStrategyId());  
    case LockAwards -> strategyDispatch.getRuleLockAwardIdByRandom(filterParam.getStrategyId());  
    case LockLongAwards -> strategyDispatch.getRuleLockLongAwardIdByRandom(filterParam.getStrategyId());  
    case BlacklistAward -> strategyDispatch.getWorstAwardId(filterParam.getStrategyId());  
    default -> 0;  
};
  • 支持 case 多个用逗号分隔
java
boolean a = switch (item.getString("Short")) {
    case "数字化", "项目实施", "项目管理", "HR", "第一事业群" -> true;
    default -> false;
}

❤️ 循环语句

for

java
for (初始化语句;条件判断语句;条件控制语句){
	循环体语句;
}

执行初始化语句,
执行条件判断语句
	false,循环结束
	true,执行循环体语句
执行条件控制语句
执行条件判断语句……

while

java
初始化语句
while(条件判断语句){
	循环体语句;
	条件控制语句;
}

do…while

java
初始化语句
do{
	循环体语句;
	条件控制语句;
}while(条件判断语句);

执行初始化语句
执行循环体语句
执行条件控制语句
执行条件判断语句
	false,循环结束
	true,执行循环体语句……

死循环

java
for(;;){
}

while(true){
}

do{
}while(true);

跳转控制语句

  • continue 基于条件控制,跳过某次循环体内容的执行,继续下一次执行
java
for (int i = 1; i <= 5; i++) {  
    if (i % 2 == 0) {  
        continue;               //if正确则执行continue,则会跳过这次的sout
    }  
    System.out.print(i);  
}


135
  • break 基于条件控制,中止循环体内容的执行
java
for (int i = 1; i <= 5; i++) {  
    if (i % 2 == 0) {  
        break;                 
    }  
    System.out.print(i);  
}


1

❤️ 数组

[!quote] 数组

数组 用于定义多个相同类型的数据

数组初始化时的默认值

  • 整数: 0
  • 浮点数: 0.0
  • 布尔值: false
  • 字符: 空字符
  • 引用数类: null

初始化

  • 动态初始化 500
  • 静态初始化
java
int arr[] = {1, 2, 3};

访问数组

java
System.out.println(arr);          //会输出一个内存地址

访问数组的元素

java
System.out.println(arr[0]);      //通过索引,访问数组元素

获取数组长度

java
int l = arr.length;

[!hint] 多个数组指向相同

如果修改 arr2 的元素值,arr1 的元素值也会相应改变

java
int arr1[] = new int[3];      // 假设arr1的内存地址为001
int arr2[] = arr1;            // 那么arr2的内存地址也为001