文章目录
题目要求
当用户输入月薪时,计算出对应的日薪(每月工作日22天)和年薪(1年13薪),并进行输出显示,如图所示:
代码演示
import java.util.Scanner;//导入Scanner类
public class SalaryConversion {
public static void main(String[] args) {
double daySalary;//日薪
double monthSalary;//月薪
double yearSalary;//年薪
System.out.println("***薪资转换工具v1.0***");
System.out.print("请输入月薪(人民币):");
Scanner sc = new Scanner(System.in);//创建Scanner对象
daySalary = sc.nextDouble();//输入日薪
System.out.format("您的日薪:¥%.2f\n",daySalary / 22);//输出日薪,小数点后保留两位
System.out.format("您的年薪:¥%,.2f\n",daySalary * 13);//输出年薪,小数点后保留两位,含千位分隔符
}
}
运行结果
蕴含知识点
Java注释
单行注释
格式: //注释信息
多行注释
格式:/* 注释信息 */
注意:多行注释不允许嵌套多行注释。
文档注释
格式:/** 注释信息*/
Java数据输入三部曲
①导包
import java.util.Scanner;
//导包的动作必须出现在类定义的上面
②创建对象
Scanner sc = new Scanner(System.in);
//该句格式中,只有sc是变量名,可以改变,其余均不可改变。
③接收数据
int a = sc.nextInt();
double b = sc.nextDouble();
String c = sc.next();
String d = sc.nextLine();
float e = sc.nextFloat();
Scanner类中的数据输入方法
int nextInt()——>读取一个整数。
double nextDouble()——>读取一个浮点数。
String next()——>读取下一个单词(以空格作为分隔符)。
String nextLine()——>读取输入的下一行内容。
注意
String nextLine()是读取输入的下一行内容。需要考虑缓冲区的问题。
nextLine() 方法不能放在nextInt() 代码段的后面,其实,他不是跳过你了,而是他已经有内容了,内容就是 \n(换行符)。因为 nextInt() 接收一个整型字符,不会读取 \n,nextLine() 读入一行文本,会读入 \n 字符。
【解决办法】
可以在 nextInt() 和 nextLine() 中间加一个 nextLine() 语句来接收这个 \n 。
使用System.out.format()格式化输出
代码演示
public class Example{
public static void main(String[] args) {
int money = 2021;
//直接打印数字
System.out.println(money);
//直接打印数字
System.out.format("%d\n",money);
//总长度是10,默认右对齐
System.out.format("%10d\n",money);
//总长度是10,左对齐
System.out.format("%-10d\n",money);
//总长度是10,不够补0
System.out.format("%010d\n",money);
//千位分隔符
System.out.format("%,10d\n",money);
//保留5位小数
System.out.format("%.5f\n",Math.PI);
}
}