Java_程序流程控制
- 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组
合成能完成一定功能的小逻辑模块。 - 基本流程结构,即:
- 顺序结构:程序从上到下逐行地执行,中间没有任何判断和跳转。
- 分支结构:根据条件,选择性地执行某段代码。有
if…else
和switch-case
两种分支语句。 - 循环结构:根据循环条件,重复性的执行某段代码。有
while、do…while、for
三种循环语句。 - 注意:JDK中还提供了foreach循环,方便的遍历集合、数组元素。
Java_条件语句
if语句:一个 if 语句包含一个布尔表达式和一条或多条语句。
public class Test {
public static void main(String args[]){
int x = 10;
if( x < 20 ){
System.out.print("这是 if 语句");
}
}
}
if…else语句:if 语句后面可以跟 else 语句,当 if 语句的布尔表达式值为 false 时,else 语句块会被执行。
public class Test {
public static void main(String args[]){
int x = 30;
if( x < 20 ){
System.out.print("这是 if 语句");
}else{
System.out.print("这是 else 语句");
}
}
}
if…else if…else 语句:if 语句后面可以跟 else if…else
语句,这种语句可以检测到多种可能的情况。
注意:
if 语句至多有 1 个 else
语句,else 语句在所有的 else if
语句之后。if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。
一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行。
public class Test {
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 语句");
}
}
}
Java_switch case语句
- switch 语句中的变量类型可以是:
byte、short、int 或者 char,字符串 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 Test {
public static void main(String[] args){
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);
}
}
Java_循环结构
- 在Java程序中若希望重复执行一段代码时,就需要使用循环结构
- 任何复杂的程序逻辑都可以通过顺序、分支、循环三种程序结构实现。
for 循环:for 循环,使一些循环结构变得更加简单。
for(初始化表达式; 条件表达式;修改初始值表达式)) {
//代码语句,循环体
}
for循环:
1. 执行初始化表达式 => 判断条件表达式是否成立
2. 成立则执行循环体 => 修改初始值表达式 => 判断条件是否成立
3. 若不成立,则循环结束
public class Test {
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");
}
}
}
continue 关键字:
continue
适用于任何循环控制结构中,用于结束本次循环而开始下一次循环。
public class Test {
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");
}
}
}
break关键字:
break
用于退出当前语句块,break用在循环体中用于退出循环。for(;;)
- 这种没有循环条件的循环叫做 无限循环,俗称“死循环”
public class Test {
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");
}
}
}
双重for循环
for(初始化表达式1; 条件表达式2; 修改初始值表达式3) {
for(初始化表达式4; 条件表达式5; 修改初始值表达式6) {
循环体;
}
}
执行流程:
执行表达式1 => 判断表达式2是否成立
=> 若成立,则执行表达式4 => 判断表达式5是否成立
=> 若成立,则执行循环体 => 执行表达式6 => 表达式5是否成立
=> 若不成立,则内层循环结束 => 表达式3 => 表达式2是否成立
=> 若不成立,则外层循环结束
双重for循环的特点
1. 外层循环用于控制打印的行数,内层循环用于控制打印的列数,外层循环改一下,内层循环从头到尾跑一圈
2. 多重循环不宜嵌套太多层,否则效率很低。一般到三重循环即可,最常见的就是双重循环
while 循环
while循环
• while(条件表达式) {
循环体;
}
• 判断条件表达式是否成立
=> 若成立,则执行循环体 => 判断条件表达式是否成立
=> 若不成立,则循环结束
public class Test {
public static void main(String args[]) {
int x = 10;
while( x < 20 ) {
System.out.print("value of x : " + x );
x++;
System.out.print("\n");
}
}
}
while循环和for循环比较
- while循环和for循环完全可以互换,推荐使用for循环
- while循环更适合于明确循环条件但不明确循环次数的场合中。
- for循环更适合于明确循环次数或范围的场合中。
- while(true) 等价于 for(;😉 都表示无限循环
do…while 循环:
do {
循环体;
} while(条件表达式);
• 执行循环体 => 判断条件表达式是否成立
=> 若成立,则执行循环体 => 判断条件表达式是否成立
=> 若不成立,则循环结束
- do-while循环主要用于至少执行一次循环体的场合中。
public class Test {
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 );
}
}
Java_forEach
- forEach语法格式:
for(声明语句 : 表达式) {
//代码句子
}
- 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
- 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
- forEach是对数组中的每一个成员执行一次操作
public class Test {
public static void main(String args[]){
int [] numbers = {10, 20, 30, 40, 50};
for(int x : numbers ){
System.out.print( x );
System.out.print(",");
}
System.out.print("\n");
String [] names ={"James", "Larry", "Tom", "Lacy"};
for( String name : names ) {
System.out.print( name );
System.out.print(",");
}
}
}
运行结果
10,20,30,40,50,
James,Larry,Tom,Lacy,