程序需要和用户交流。最基础的交流方式就是输出(output)信息,以及从键盘读取输入(input)。
System.out.println()
System.out.println() 用于向屏幕输出文本或变量值,并在末尾换行。
有些字符在程序中有特殊意义,需要使用转义字符(escape character)输出。
\\:反斜杠\':单引号\":双引号\n:换行\t:制表符
System.out.println("\"Hello\nWorld\"");运行结果:
"Hello
World"知识测验
题目
哪一项可以结束当前输出行并换行?
格式化输出
使用 System.out.printf() 可以通过占位符(placeholder)把变量嵌入格式字符串。
%d:整数%f:浮点数%s:字符串
int length = 10;
int width = 5;
double area = length * width;
System.out.printf("面积:%d * %d = %.2f%n", length, width, area);运行结果:
面积:10 * 5 = 50.00格式字符串中的占位符按顺序对应逗号后的参数;%.2f 表示以浮点格式保留两位小数。
System.out.printf("面积:%d * %d = %.2f%n", length, width, area);知识测验
题目
如果 area = 50,哪条语句会显示两位小数?
控制输出结尾
System.out.println() 会在输出后换行;System.out.print() 不会自动换行,因此可以连续拼接输出。
int num1 = 1;
int num2 = 2;
int num3 = 4;
int num4 = 8;
System.out.print(num1 + ", ");
System.out.print(num2 + ", ");
System.out.print(num3 + ", ");
System.out.print(num4 + "...");运行结果:
1, 2, 4, 8...Scanner 输入
Scanner 可以从键盘读取输入。先创建连接到 System.in 的对象,再调用 next()、nextInt() 或 nextDouble()。
next() 返回 String,而 nextInt() 和 nextDouble() 会直接解析相应的数字类型。
Scanner scanner = new Scanner(System.in);
System.out.print("半径:");
double r = scanner.nextDouble();
double area = Math.PI * r * r;
System.out.printf("面积:%.2f%n", area);Java 没有 ** 运算符。平方可以直接写成 r * r,也可以调用 Math.pow(r, 2)。
一次可能的运行过程:
半径:5
面积:78.54这里 scanner.nextDouble() 直接读取 double 值;Math.PI 是 Java 标准库提供的圆周率常量。
知识测验
题目
Scanner 的 next() 方法返回什么类型?
互动实验
输出实验台
访问权限免费
依次点击三张代码卡,观察每条语句如何改变终端输出。
动手练习
计算两点之间的距离
读取两个坐标点,输出平面距离。
- 分别读取 x1、y1、x2、y2 四个浮点数。
- 按照距离公式计算两点距离。
- 把结果保留两位小数后输出。
动手练习
制作一个温度记录卡
读取一个摄氏温度,把它保存到语义清晰的变量里,计算华氏温度后再输出一份简洁报告。
- 用 Scanner 读取一个摄氏温度。
- 把华氏温度保存到变量 fahrenheit 中。
- 再创建一个字符串变量 reportTitle,并把标题与换算结果一起输出。