3.0 控制语句
顺序,选择,循环
3.1 选择结构
1、if单选择结构
2、if-else双选择结构
3、if-else if-else多选择结构
4、switch结构
Math.random()该方法用于产生一个0到1区间的double类型的随机数,但是不包括1。
int i = (int) (6 * Math.random()); //产生:[0,5]之间的随机整数
3.2 循环结构
1、while循环
2、do-while循环
3、for循环
//while循环
int i = 0;
int sum = 0;//1+2+3+…+100=?
while (i <= 100) {
sum += i;//相当于sum = sum+i;
i++;
}
System.out.println("Sum= " + sum);
//do-while循环
int i = 0;
int sum = 0;
do {
sum += i; // sum = sum + i
i++;
} while (i <= 100);//此处的;不能省略
System.out.println("Sum= " + sum);
//for循环
for (int i = 1; i < 10; i++) { // i是一个乘数
for (int j = 1; j <= i; j++) { // j是另一个乘数
System.out.print(j + "*" + i + "=" + (i * j < 10 ? (" " + i * j) : i * j) + " ");
}
System.out.println();
}
4、嵌套循环
5、break语句和continue语句
6、带标签的break和continue
“标签”是指后面跟一个冒号的标识符,例如:“label:”。
Java在循环语句之前用到标签。
在循环之前设置标签的唯一理由是:
我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。
outer: for (int i = 101; i < 150; i++) {
for (int j = 2; j < i / 2; j++) {
if (i % j == 0){
continue outer;
}
}
System.out.print(i + " ");
}
3.3 语句块
语句块(有时叫做复合语句),是用花括号扩起的任意数量的简单Java语句。
3.4 方法
方法就是一段用来完成特定功能的代码片段,类似于其它语言的函数。
面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。
面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。
方法声明格式:(add方法)
[修饰符1 修饰符2 …] 返回值类型 方法名(形式参数列表){
Java语句;… … …
}
public static void main(String[] args){
int num1 = 10;
int num2 = 20;
int sum = add(num1, num2);
System.out.println("sum = " + sum);
//print();
}
public static int add(int n1, int n2) {
int sum = n1 + n2;
return sum;
}
3.5 方法的重载(overload)
方法的重载是指一个类中可以定义多个方法名相同,但参数不同的方法。
调用时,会根据不同的参数自动匹配对应的方法。
重载的方法,实际是完全不同的方法,只是名称相同而已!
构成方法重载的条件:
1、不同的含义:参数个数、参数类型、参数顺序不同
2、只有返回值不同,不构成方法的重载
3、只有形参的名称不同,不构成方法的重载
public static void main(String[] args){
System.out.println(add(3, 5));// 8
System.out.println(add(3, 5, 10));// 18
System.out.println(add(3.0, 5));// 8.0
System.out.println(add(3, 5.0));// 8.0
// 我们已经见过的方法的重载
System.out.println();// 0个参数
System.out.println(1);// 参数是1个int
System.out.println(3.0);// 参数是1个double
}
//add方法
public static int add(int n1, int n2) {
int sum = n1 + n2;
return sum;
}
//编译错误:只有返回值不同,不构成方法的重载
public double add(int n1, int n2) {
double sum = n1 + n2;
return sum;
}
//编译错误:只有参数名称不同,不构成方法的重载
public int add(int n2, int n1) {
double sum = n1 + n2;
return sum;
}
// 方法名相同,参数个数不同,构成重载
public int add(int n1, int n2, int n3) {
int sum = n1 + n2 + n3;
return sum;
}
// 方法名相同,参数类型不同,构成重载
public double add(double n1, int n2) {
double sum = n1 + n2;
return sum;
}
// 方法名相同,参数顺序不同,构成重载
public double add(int n1, double n2) {
double sum = n1 + n2;
return sum;
}