zoukankan      html  css  js  c++  java
  • Java学习基础——流程

    一、输入与输出

    输出

    在前面的代码中,我们总是使用System.out.println()来向屏幕输出一些内容。

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

    Java的格式化功能提供了多种占位符,可以把各种数据类型“格式化”成指定的字符串:

    占位符说明
    %d 格式化输出整数
    %x 格式化输出十六进制整数
    %f 格式化输出浮点数
    %e 格式化输出科学计数法表示的浮点数
    %s 格式化字符串

    注意,由于%表示占位符,因此,连续两个%%表示一个%字符本身。

    占位符本身还可以有更详细的格式化参数。下面的例子把一个整数格式化成十六进制,并用0补足8位:

    输入

    和输出相比,Java的输入就要复杂得多。

    我们先看一个从控制台读取一个字符串和一个整数的例子:

    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
    ", name, age); // 格式化输出
        }
    }

    首先,我们通过import语句导入java.util.Scannerimport是导入某个类的语句,必须放到Java源代码的开头,后面我们在Java的package中会详细讲解如何使用import

    然后,创建Scanner对象并传入System.inSystem.out代表标准输出流,而System.in代表标准输入流。直接使用System.in读取用户输入虽然是可以的,但需要更复杂的代码,而通过Scanner就可以简化后续的代码。

    有了Scanner对象后,要读取用户输入的字符串,使用scanner.nextLine(),要读取用户输入的整数,使用scanner.nextInt()Scanner会自动转换数据类型,因此不必手动转换。

    要测试输入,我们不能在线运行它,因为输入必须从命令行读取,因此,需要走编译、执行的流程:

    ------------恢复内容开始------------

    一、输入与输出

    输出

    在前面的代码中,我们总是使用System.out.println()来向屏幕输出一些内容。

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

    Java的格式化功能提供了多种占位符,可以把各种数据类型“格式化”成指定的字符串:

    占位符说明
    %d 格式化输出整数
    %x 格式化输出十六进制整数
    %f 格式化输出浮点数
    %e 格式化输出科学计数法表示的浮点数
    %s 格式化字符串

    注意,由于%表示占位符,因此,连续两个%%表示一个%字符本身。

    占位符本身还可以有更详细的格式化参数。下面的例子把一个整数格式化成十六进制,并用0补足8位:

    输入

    和输出相比,Java的输入就要复杂得多。

    我们先看一个从控制台读取一个字符串和一个整数的例子:

    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
    ", name, age); // 格式化输出
        }
    }

    小结

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

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

    二、if判断

    判断引用类型相等

    在Java中,判断值类型的变量是否相等,可以使用==运算符。但是,判断引用类型的变量是否相等,==表示“引用是否相等”,或者说,是否指向同一个对象。例如,下面的两个String类型,它们的内容是相同的,但是,分别指向不同的对象,用==判断,结果为false

    public class Main {
        public static void main(String[] args) {
            String s1 = "hello";
            String s2 = "HELLO".toLowerCase();
            System.out.println(s1);
            System.out.println(s2);
            if (s1 == s2) {
                System.out.println("s1 == s2");
            } else {
                System.out.println("s1 != s2");
            }
        }
    }

    要判断引用类型的变量内容是否相等,必须使用equals()方法:

    public class Main {
        public static void main(String[] args) {
            String s1 = "hello";
            String s2 = "HELLO".toLowerCase();
            System.out.println(s1);
            System.out.println(s2);
            if (s1.equals(s2)) {
                System.out.println("s1 equals s2");
            } else {
                System.out.println("s1 not equals s2");
            }
        }
    }

    小结

    if ... else可以做条件判断,else是可选的;

    不推荐省略花括号{}

    多个if ... else串联要特别注意判断顺序;

    要注意if的边界条件;

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

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

    三、switch多重选择

    小结

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

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

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

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

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

     四、while循环

    小结

    while循环先判断循环条件是否满足,再执行循环语句;

    while循环可能一次都不执行;

    编写循环时要注意循环条件,并避免死循环

  • 相关阅读:
    spring+mybatis多数据源切换
    【linux环境下】RabbitMq的安装和监控插件安装
    Slurm远程登录Jupyter Notebook
    Google Colab 使用
    关于conda和jupyter使用
    关于给C盘扩容以及动态磁盘
    关于使用实验室服务器的GPU以及跑上TensorFlow代码
    一些更改的后端接口和代码
    MarkDown to PDF
    蜗牛慢慢爬 LeetCode 25. Reverse Nodes in k-Group [Difficulty: Hard]
  • 原文地址:https://www.cnblogs.com/William-xh/p/13597188.html
Copyright © 2011-2022 走看看