本章内容:

1.Java输入输出
2.if判断
3.switch语句
4.while循环
5.do-while循环
6.for循环与for each循环
7.break与continue
8.Java多维数组

1.输入输出

在前面的代码中,我们总是使用System.out.println()来向屏幕输出一些内容。println是print line的缩写,表示输出并换行。因此,如果输出后不想换行,可以用System.out.print()
格式化输出:
如果要把数据显示成我们期望的格式,就需要使用格式化输出的功能。格式化输出使用System.out.printf(),通过使用占位符%?,printf()可以把后面的参数格式化成指定格式:

1
2
3
4
5
6
7
public class Main{
public static void main(String[] args){
double d = 3.1415927;
System.out.printf("%.2f",d);
System.out.printf("%.4f",d);
}
}
占位符 说明
%d 格式化输出整数
%x 格式化输出十六进制整数
%f 格式化输出浮点数
%e 格式化输出科学计数法表示的浮点数
%s 格式化字符串

输入: 直接看案例
输入类型:
方法     描述
nextBoolean()     从用户输入中读取1个 boolean 值
nextByte()      从用户输入中读取1个 byte 值
nextDouble()     从用户输入中读取1个 double 值
nextFloat()     从用户输入中读取1个 float 值
nextInt()     从用户输入中读取1个 int 值
nextLine()     从用户输入中读取1个 String 值
nextLong()     从用户输入中读取1个 long 值
nextShort()     从用户输入中读取1个 short 值

1
2
3
4
5
6
7
8
9
10
11
12
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源代码的开头

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

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

2.if判断

if语句的基本语法是:

1
2
3
4
5
6
7
8
9
if (条件) {
// 条件一满足时执行
}
else if(条件) {
// 条件二满足时执行
}
else{
// 条件不满足时执行
}

拓:浮点数相等判断。浮点数在计算机中常常无法精确表示,并且计算可能出现误差,因此,判断浮点数相等用==判断不靠谱

1
2
3
4
5
6
7
8
9
10
11
public class Main {
public static void main(String[] args) {
double x = 1 - 9.0 / 10;
// 利用Math的绝对值之差
if (Math.abs(x - 0.1) < 0.00001) {
System.out.println("x is 0.1");
} else {
System.out.println("x is NOT 0.1");
}
}
}

3.switch语句

1
2
3
4
5
6
7
8
9
10
11
12
13
14
switch (option) {
case 3:
...
break;
case 2:
...
break;
case 1:
...
break;
default:
...
break;
}

4.while循环

while循环在每次循环开始前,首先判断条件是否成立。如果计算结果为true,就把循环体内的语句执行一遍,如果计算结果为false,那就直接跳到while循环的末尾,继续往下执行。

1
2
3
4
5
6
7
8
9
10
11
public class Main {
public static void main(String[] args) {
int sum = 0; // 累加的和,初始化为0
int n = 1;
while (n <= 100) { // 循环条件是n <= 100
sum = sum + n; // 把n累加到sum中
n ++; // n自身加1
}
System.out.println(sum); // 5050
}
}

while循环是先判断循环条件,再循环,因此,有可能一次循环都不做。

5.do…while循环

在Java中,while循环是先判断循环条件,再执行循环。而另一种do while循环则是先执行循环,再判断条件,条件满足时继续循环,条件不满足时退出。它的用法是:

1
2
3
do {
执行循环语句
} while (条件表达式);

可见,do while循环会至少循环一次。

6.for循环

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class Main {
public static void main(String[] args) {
int[] ns = { 1, 4, 9, 16, 25 };
int sum = 0;
for (int i=0; i<ns.length; i++) {
System.out.println("i = " + i + ", ns[i] = " + ns[i]);
sum = sum + ns[i];
}
System.out.println("sum = " + sum);
}
}
/*
i = 0, ns[i] = 1
i = 1, ns[i] = 4
i = 2, ns[i] = 9
i = 3, ns[i] = 16
i = 4, ns[i] = 25
sum = 55
*/

for each循环

本质上为增强for循环:用来遍历集合与数组

1
2
3
4
格式:
for(集合/数组的数据类型 变量名:集合名/数组名){
执行语句
}

7.break与continue

break:会跳出整个循环,也就是整个循环都不会执行了
continue:提前结束本次循环,直接继续执行下次循环

8.二维数组

1
2
3
4
5
6
7
8
9
10
public class Main {
public static void main(String[] args) {
int[][] ns = {
{ 1, 2, 3, 4 },
{ 5, 6, 7, 8 },
{ 9, 10, 11, 12 }
};
System.out.println(ns.length); // 3
}
}

因为ns包含3个数组,因此,ns.length为3.
访问二维数组的某个元素需要使用array[row][col],例如:

1
System.out.println(ns[1][2]); // 7

 评论

联系我 | Contact with me

Copyright © 2019-2020 谁知你知我,我知你知深。此恨经年深,比情度日久

博客内容遵循 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议