java double格式化输出 java格式化输出是什么意思 您所在的位置:网站首页 为什么要用科学计数法 java double格式化输出 java格式化输出是什么意思

java double格式化输出 java格式化输出是什么意思

2023-06-07 14:20| 来源: 网络整理| 查看: 265

输入和输出

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

格式化输出

Java还提供了格式化输出的功能。为什么要格式化输出?因为计算机表示的数据不一定适合人来阅读:

如果要把数据显示成我们期望的格式,就需要使用格式化输出的功能。格式化输出使用System.out.printf(),通过使用占位符%?,printf()可以把后面的参数格式化成指定格式:

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

占位符

说明

%d

格式化输出整数

%x

格式化输出十六进制整数

%f

格式化输出浮点数

%e

格式化输出科学计数法表示的浮点数

%s

格式化字符串

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

输入

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

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

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

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

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

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

$ javac Main.java

这个程序编译时如果有警告,可以暂时忽略它,在后面学习IO的时候再详细解释。编译成功后,执行:

$ java Main Input your name: Bob Input your age: 12 Hi, Bob, you are 12IF判断

串联的效果其实相当于:

if (n >= 90) { // n >= 90为true: System.out.println("优秀"); } else { // n >= 90为false: if (n >= 60) { // n >= 60为true: System.out.println("及格了"); } else { // n >= 60为false: System.out.println("挂科了"); } }

正确的方式是按照判断范围从大到·小依次判断:

// 从大到小依次判断: if (n >= 90) { // ... } else if (n >= 60) { // ... } else { // ... }

在串联使用多个if时,要特别注意判断顺序。观察下面的代码:

判断引用类型相等

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

小结

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

不推荐省略花括号{};

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

要注意if的边界条件;

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

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



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有