目录
一、顺序控制
程序从上到下逐行的执行,中间没有任何判断和跳转。
注意:Java中定义变量时使用合法的前向引用。
二、分支控制if-else
1. 单分支
① 基本语法
if(条件表达式){
执行代码块;(可以有多条语句)
}
说明:当条件表达式为true时,就会执行{ }的代码。如果为false,就不执行。特别说明,如果{ }中只有一条语句,则可以不用{ },但建议写上。
2. 双分支
① 基本语法
if(条件表达式){
执行代码块1;(可以有多条语句)
} else {
执行代码块2;(可以有多条语句)
}
说明:当条件表达式为true时,就会执行代码块1。如果为false,就执行代码块2。特别说明,如果{ }中只有一条语句,则可以不用{ },但建议写上。
3. 分支控制if-else
① 基本语法
if(条件表达式1){
执行代码块1;(可以有多条语句)
} else if(条件表达式2){
执行代码块2;(可以有多条语句)
}
....
else{
执行代码块n;(可以有多条语句)
}
② 特别说明
(1)多分支可以没有else,如果所有的条件表达式都不成立,则一个执行入口都没有;
(2)如果有else,如果所有的条件表达式都不成立,则默认执行else代码块。
4. 嵌套分支
在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构成为内层分支,外面的分支结构称为外层分支,建议不要超过3层。(可读性不好)
① 基本语法
if(){
if(){
//if-else...
}else{
//if-else
}
}
5. switch分支结构
① 基本语法
switch(表达式){
case 常量1:
语句块1;
break;
case 常量2:
语句块2;
break;
...
case 常量n:
语句块n;
break;
deault:
default语句块;
break;//这个有没有无所谓了,因为是最后了,都会退出switch。
}
② 解读
(1)switch关键字,表示switch分支;
(2)表达式对于一个值;
(3)case 常量1:当表达式的值等于常量1,就执行 语句块1;
(4)break:表示推出switch,若没有break,则忽视下面的case,一直执行下面的语句块;
(5)如果和 case 常量1 匹配,就执行语句块1,如果没有匹配,就继续匹配 case 常量2;
(6)如果一个都没有匹配上,就执行default语句块。
③ 注意事项及细节
(1)表达式数据类型,应和 case 后的常量类型一致,或者是可以自动转为可以相互比较的类型,比如输入的是字符,而变量是 int 。
(2)switch(表达式)中表达式的返回值必须是:(byte、short、int、char、enum[枚举]、String)。
(3)case子句中的值必须是常量,而不能是变量。
(4)default子句是可选的,当没有匹配的case时,执行default。
(5)break语句是用来在执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾,除非遇到break。
④ switch 和 if 的比较
(1)如果判断的具体数值不多,而且符合byte、short、int、char、enum[枚举]、String这6种类型。虽然两个语句都可以使用,建议使用swtich语句。
(2)其他情况:对区间判断,对结果为boolean类型判断,使用if,if的适用范围更广。
三、for循环控制
1、基本语法
for(循环变量初始化;循环条件;循环变量迭代){
循环操作(可以多条语句);
}
2、说明
(1)for关键字,表示循环控制;
(2)for有四要素:①循环变量初始化、②循环条件、③循环操作、④循环变量迭代;
(3)循环操作,这里可以有很多条语句,也就是我们要循环执行的代码;
(4)如果循环操作(语句)只有一条语句,可以省略{},建议不要省略。
3、细节
(1)循环条件是返回一个布尔值的表达式;
(2)for(;循环判断条件;)中的初始化和变量迭代可以写道其它地方,但是两边的分号不能省略;
(3)循环初始值可以有多条初始化语句,但要求类型一样,并且中间用逗号隔开,循环变量迭代也可以有多条变量迭代语句,中间用逗号隔开。
四、while循环控制
1、基本语句
循环变量初始化;
while(循环条件){
循环体(语句);
循环变量迭代;
}
2、注意事项和细节
① 循环条件是返回一个布尔值的表达式;
② while循环是先判断再执行语句。
五、do..while循环控制
1、基本语法
循环变量初始化;
do{
循环体(语句);
循环变量迭代;
}while(循环条件);
2、说明
① do while 是关键字;
② 也有循环四要素,只是位置不同;
③ 先执行,再判断,就是说至少执行一次;
④ 最后有一个分号。
3、注意事项和细节说明
① 循环条件是返回一个布尔值的表达式;
② do...while循环是先执行,再判断,因此至少执行一次。
六、多重循环控制
1、将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for,while,do...while均可以作为外层循环和内层循环。(建议最多两层)
2、实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可以结束外层的当次循环,开始下一次的循环。
七、空心金字塔
输出空心金字塔:
import java.util.Scanner;
public class PracticeLoop03{
public static void main(String[] args) {
Scanner myscanner = new Scanner(System.in);
System.out.println("请输入行数:");
int num = myscanner.nextInt();
for (int i = 1;i <= num;i++) {
for (int k = 1; k <= num - i;k++) {
System.out.print(" ");
}
for (int j =1;j <= 2 * i - 1;j++) {
if (j == 1 || j == 2 * i -1 || i == num) {
System.out.print("*");
}else{
System.out.print(" ");
}
}
System.out.println("");
}
}
}
八、跳转控制语句-break
1、基本介绍
break语句用于终止某个语句块的执行,一般使用在switch或者循环[for,while,do-while]中。
2、基本语法
{ ...
break;
...
}
3、注意事项和细节说明
① break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块。
② 标签的基本使用
label1:{ ......
label2: { ......
label3: { ......
break;
......
}
}
}
(1)break语句可以指定退出哪层;
(2)label1是标签,名字由程序员指定;
(3)break后指定到哪个label就退出到哪里;
(4)实际开发中,尽量不使用标签;
(5)如果没有指定break,默认退出最近的循环体。
九、跳转控制语句-continue
1、基本介绍
① continue语句用于结束本次循环,据徐执行下一次循环;
② continue语句出现在多层嵌套的循环与语句体中时,可以通过标签指明要跳过的是哪一层循环,和break的使用规则一样。
2、基本语法
{ ......
continue;
......
}
十、跳转控制语句-return
1、介绍
return使用在方法,表示跳出所在的方法,在讲解方法的时候,会详细的介绍。如果return写在main方法,退出程序。
知识点
1、输出0.0 ~ 1.0之间的随机数
Math.random()
2、输出1~100之间的随机数
(int)(Math.random() * 100 ) + 1
3、判断字符串内容是否相等
例如:
String name = "贾宝玉";
System.out.println(name.equals("林黛玉"));
System.out.println("林黛玉".equals(name));//两种写法都可,更推荐该方法,避免空指针。
结果输出false。