java-流程控制

116 阅读2分钟

输出

println是print line的缩写,表示输出并换行。因此,如果输出后不想换行,可以用print()

输入

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // 创建Scanner对象   
        System.out.print("Input your name: "); // 打印提示     
        String name = scanner.nextLine(); // 读取一行输入并获取字符串    
        System.out.print("Input your age: "); // 打印提示       
        int age = scanner.nextInt(); // 读取一行输入并获取整数        
        System.out.printf("Hi, %s, you are %d\n", name, age); // 格式化输出    
        }
     }

Java提供的输出包括:System.out.println() / print() / printf(),其中printf()可以格式化输出;

Java提供Scanner对象来方便输入,读取对应的类型可以使用:scanner.nextLine() / nextInt() / nextDouble() / …

if判断

要注意浮点数判断相等不能直接用==运算符;

引用类型判断内容相等要使用equals(),注意避免NullPointerException

还可以把一定不是null的对象"hello"放到前面:例如:if ("hello".equals(s)) { … }

switch多重选择

switch语句可以做多重选择,然后执行匹配的case语句后续代码;

switch的计算结果必须是整型、字符串或枚举类型;

注意千万不要漏写break,建议打开fall-through警告;

总是写上default,建议打开missing default警告;

从Java 13开始,switch语句升级为表达式,不再需要break,并且允许使用yield返回值。

遍历数组

for each循环

注意:在for (int n : ns)循环中,变量n直接拿到ns数组的元素,而不是索引。

显然for each循环更加简洁。但是,for each循环无法拿到数组的索引,因此,到底用哪一种for循环,取决于我们的需要。

使用for each循环打印也很麻烦。幸好Java标准库提供了Arrays.toString(),可以快速打印数组内容:

多维数组

二维数组就是数组的数组,三维数组就是二维数组的数组;

多维数组的每个数组元素长度都不要求相同;

打印多维数组可以使用Arrays.deepToString()

最常见的多维数组是二维数组,访问二维数组的一个元素使用array[row][col]

命令行参数

image.png