目录
- public class Test8 {
- public static void main(String[] args) {
- double d = 3.1415926;
- System.out.printf("%.2f\n", d); // 显示两位小数3.14
- System.out.printf("%.4f\n", d); // 显示4位小数3.1416
- }
- }
Java 的格式化功能提供了多种占位符,可以把各种数据类型“格式化”成指定的字符串:
占位符 | 说明 |
---|---|
%d | 格式化输出整数 |
%x | 格式化输出十六进制整数 |
%f | 格式化输出浮点数 |
%e | 格式化输出科学计数法表示的浮点数 |
%s | 格式化字符串 |
注意,由于%表示占位符,因此,连续两个%%表示一个%字符本身。
占位符本身还可以有更详细的格式化参数。下面的例子把一个整数格式化成十六进制,并用0补足8位:
- public class Main {
- public static void main(String[] args) {
- int n = 12345000;
- System.out.printf("n=%d, hex=%08x", n, n); // 注意,两个%占位符必须传入两个数
- }
- }
格式化字符串示例
- 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); // 格式化输出
- }
-
- }
控制台输出
- Input your name: Kevin
- Input your age: 26
- Hi, Kevin, you are 26
if 语句用于实现条件分支机构,它在可选动作中作出选择,执行某个分支的程序段。
语法:
- if(布尔表达式){
- //如果布尔表达式为true将执行的语句
- }
如果布尔表达式的值为 true,则执行 if 语句中的代码块,否则执行 if 语句块后面的代码。
示例
- public class Main {
- public static void main(String[] args) {
- int n = 70;
- if (n >= 60) {
- System.out.println("及格了");
- }
- System.out.println("END");
- }
- }
控制台输出
- 及格了
- END
语法:
- if(布尔表达式){
- //如果布尔表达式的值为true
- }else{
- //如果布尔表达式的值为false
- }
示例
- public static void main(String args[]){
- int x = 30;
-
- if( x < 20 ){
- System.out.print("这是 if 语句");
- }else{
- System.out.print("这是 else 语句");
- }
- }
控制台输出
这是 else 语句
语法:
- if(布尔表达式 1){
- //如果布尔表达式 1的值为true执行代码
- }else if(布尔表达式 2){
- //如果布尔表达式 2的值为true执行代码
- }else if(布尔表达式 3){
- //如果布尔表达式 3的值为true执行代码
- }else {
- //如果以上布尔表达式都不为true执行代码
- }
示例
- public class Main {
- public static void main(String args[]) {
- int x = 30;
- if (x == 10) {
- System.out.print("Value of X is 10");
- } else if (x == 20) {
- System.out.print("Value of X is 20");
- } else if (x == 30) {
- System.out.print("Value of X is 30");
- } else {
- System.out.print("这是 else 语句");
- }
- }
- }
控制台输出
Value of X is 30
语法:
- switch(expression){
- case value :
- //语句
- break; //可选
- case value :
- //语句
- break; //可选
- //你可以有任意数量的case语句
- default : //可选
- //语句
- }
switch规则:
switch 语句中的变量类型可以是: byte、short、int 或者 char。从 Java SE 7 开始,switch 支持字符串 String 类型了,同时 case 标签必须为字符串常量或字面量。
switch 语句可以拥有多个 case 语句。每个 case 后面跟一个要比较的值和冒号。
case 语句中的值的数据类型必须与变量的数据类型相同,而且只能是常量或者字面常量。
当变量的值与 case 语句的值相等时,那么 case 语句之后的语句开始执行,直到 break 语句出现才会跳出 switch 语句。
当遇到 break 语句时,switch 语句终止。程序跳转到 switch 语句后面的语句执行。case 语句不必须要包含 break 语句。如果没有 break 语句出现,程序会继续执行下一条 case 语句,直到出现 break 语句。
switch 语句可以包含一个 default 分支,该分支一般是 switch 语句的最后一个分支(可以在任何位置,但建议在最后一个)。default 在没有 case 语句的值和变量值相等的时候执行。default 分支不需要 break 语句。
switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。
示例
- public class Main {
- public static void main(String args[]){
- //char grade = args[0].charAt(0);
- char grade = 'C';
-
- switch(grade)
- {
- case 'A' :
- System.out.println("优秀");
- break;
- case 'B' :
- case 'C' :
- System.out.println("良好");
- break;
- case 'D' :
- System.out.println("及格");
- break;
- case 'F' :
- System.out.println("你需要再努力努力");
- break;
- default :
- System.out.println("未知等级");
- }
- System.out.println("你的等级是 " + grade);
- }
-
- }
控制台输出
- 良好
- 你的等级是 C
语法:
- while( 布尔表达式 ) {
- //循环内容
- }
只要布尔表达式为 true,循环就会一直执行下去。
示例
- public class Main {
- public static void main(String[] args) {
- int x = 10;
- while( x < 20 ) {
- System.out.print("value of x : " + x );
- x++;
- System.out.print("\n");
- }
- }
- }
控制台输出
- value of x : 10
- value of x : 11
- value of x : 12
- value of x : 13
- value of x : 14
- value of x : 15
- value of x : 16
- value of x : 17
- value of x : 18
- value of x : 19
对于 while 语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
语法
- do {
- //代码语句
- }while(布尔表达式);
示例
- public class Main {
- public static void main(String[] args){
- int x = 10;
-
- do{
- System.out.print("value of x : " + x );
- x++;
- System.out.print("\n");
- }while( x < 20 );
- }
- }
控制台显示
- value of x : 10
- value of x : 11
- value of x : 12
- value of x : 13
- value of x : 14
- value of x : 15
- value of x : 16
- value of x : 17
- value of x : 18
- value of x : 19
语法:
- for(初始化; 布尔表达式; 更新) {
- //代码语句
- }
说明
最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
然后,检测布尔表达式的值。如果为 true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
执行一次循环后,更新循环控制变量。
再次检测布尔表达式。循环执行上面的过程。
示例
-
- public class Main {
- public static void main(String[] args) {
- for(int x = 10; x < 20; x = x+1) {
- System.out.print("value of x : " + x );
- System.out.print("\n");
- }
- }
- }
控制台显示
- value of x : 10
- value of x : 11
- value of x : 12
- value of x : 13
- value of x : 14
- value of x : 15
- value of x : 16
- value of x : 17
- value of x : 18
- value of x : 19
break 主要用在循环语句或者 switch 语句中,用来跳出整个语句块。
break 跳出最里层的循环,并且继续执行该循环下面的语句。
语法:
break;
示例
- public class Main {
- public static void main(String[] args) {
- int [] numbers = {10, 20, 30, 40, 50};
-
- for(int x : numbers ) {
- // x 等于 30 时跳出循环
- if( x == 30 ) {
- break;
- }
- System.out.print( x );
- System.out.print("\n");
- }
- }
- }
控制台显示
- 10
- 20
continue 适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
语法:
continue;
示例
- public class Main {
- public static void main(String[] args) {
- int [] numbers = {10, 20, 30, 40, 50};
-
- for(int x : numbers ) {
- if( x == 30 ) {
- continue;
- }
- System.out.print( x );
- System.out.print("\n");
- }
- }
- }
控制台显示
- 10
- 20
- 40
- 50
break
语句可以跳出当前循环。
break
语句通常配合if
,在满足条件时提前结束整个循环。
break
语句总是跳出最近的一层循环。
continue
语句可以提前结束本次循环。
continue
语句通常配合if
,在满足条件时提前结束本次循环。