顺序结构
程序从上到下逐行地执行,中间没任何判断和跳转。
分支结构
根据条件,择性地执行某段代码。
if…else和switch-case两种分支语句。
循环结构
根据循环条件,重复性的执行某段代码。
while、do…while、for种循环语句。
注:JDK1.5提供了foreach循环,方便的遍历集合、数组元素。
分支结构:
一 if-else
格式1:
if(条件表达式){
执行语句;
}
格式2 : 二选一
if(条件表达式){
执行语句1;
}else{
执行语句2;
}
格式3 :多选一
if(条件表达式1){
执行语句1;
}else if(条件表达式2){
执行语句2;
}else if(条件表达式3){
执行语句3;
}
else{
执行语句n;
}
说明:
1.条件表达式的结果为布尔类型
2.在if-else if结构中如果多个条件表达式的关系为互斥关系那么谁上谁下都可以。
如果为包含关系那么范围小的在上面范围大的在下面。
3.在if-else if结构中,else可以省略。那么有可能没有任何一个条件是满足的。
二、switch-cash
格式:
switch(表达式){
case 常量1:
执行语句;
break;
case 常量2:
执行语句2;
break;
case 常量3:
执行语句3;
break;
......
default:
执行语句n;
break;
}
说明:
1.case后面的常量会和表达式进行匹配,如果匹配成功则进入执行相应的执行语句。
直到遇到break或者执行到switch-case结构的就会跳出switch-case结构。
如果和case后面的常量都没有匹配成功那么执行default中的执行语句。
2.break可以省略。break作用:用来跳出(终止)switch-case结构。
3.表达式的类型只能是 :byte,short,int,char,枚举,String
4.case后面只能跟常量
5.default的位置是灵活的。当所有case都没有匹配成功时就执行default中的执行语句
6.使用switch-case的,都可以改写为if-else。反之不成立,都可以使用的情况下用switch-case效率高一些
总结:1.在switch中是可以进行穿透的,可以理解成如果第一个语句没有终结,那么会继续到下一个循环体,一直到
最后面或者是遇到break时程序结束。
例子:
int score = 90;
switch(score / 10){
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
System.out.println("不合格");
break;
case 6:
case 7:
case 8:
case 9:
case 10:
System.out.println("合格");
break;
}
2…用switch时要注意case的位置和顺序
循环结构
一、for循环
循环的四要素:
1.初始化条件
2.循环条件
3.循环体
4.迭代条件
二 格式:
for(初始化条件; 循环条件 ; 迭代条件){
循环体;
}
for(1; 2 ; 4){
3
}
1.初始化条件只执行一次
2.循环条件的结果为布尔类型,如果为true执行循环体,如果为false则跳出for循环结构
3.执行顺序: 1 -> 2 -> 3 -> 4 -> 2 -> 3 -> 4 ......2
三 代码:
//需求 :输出100以内的偶数,统计偶数的个数,求偶数的和。
int count = 0; //统计偶数的个数
int sum = 0; //偶数的和
for(int i = 1; i <= 100; i++){
//判断当前i的值是否是偶数
if(i % 2 == 0){
sum += i;
count++;
System.out.println(i);
}
}
System.out.println("count=" + count + " sum=" + sum);
二、while循环
一 循环结构
循环的四要素:
1.初始化条件
2.循环条件
3.循环体
4.迭代条件
二 格式:
初始化条件;
while(循环条件){
循环体;
迭代条件;
}
注意 :
1.必须有迭代条件否则会发生死循环。
2.for循环和while循环可以相互替换使用
三 代码:
//
需求 :100以内的偶数,偶数的个数,偶数的总和
//初始化条件
int i = 1;
int count = 0; //统计偶数的个数
int sum = 0; //偶数的和
while(i <= 100){//循环条件
//循环体
if(i % 2 == 0){
sum += i;
count++;
System.out.println(i);
}
i++; //迭代条件
}
System.out.println("count=" + count + " sum=" + sum);
四 while和for循环的区别?
while的初始化条件在结构外,for循环的初始化条件在结构内(也可以写在结构外)
注意:当while里面的循环条件为true的时候,打印数据的时候是不能一次打印完不换行的,否者不会显示出打印的内容
三、do-while循环
一 循环结构
循环的四要素:
1.初始化条件
2.循环条件
3.循环体
4.迭代条件
二 格式:
初始化条件;
do{
循环体;
迭代条件;
}while(循环条件);
三 代码:
int i = 1;
do{
if(i % 2 == 0){
System.out.println(i);
}
i++;
}while(i <= 100);
四 while和do-while的区别?
while的循环体可能一次也不执行,do-while的循环体至少执行一次。
五、死循环
一 格式 :
for(; ; ){}
while(true){}
do{
}while(true);
注意:循环条件最好不要直接写成true。可以使用一个变量。
二 如何终止循环:
1.将循环条件的值变为false
2.使用break关键字用来终止循环
三 代码:
boolean boo = true;
while(boo){
boo = false;
}
while(true){
break;
}
六、嵌套循环
一 嵌套循环 :一个循环a作为另一个循环b的循环体。那么a循环叫作内层循环,b循环叫作外层循环
二 循环体执行的次数 = 外层循环的次数 * 内层循环的次数
三 说明 :
可以把外层循环看作行,内层循环看作列。
四 代码:
/*
需求:
*****
*****
*****
*****
*****
*/
for(int j = 1; j <= 5; j++){ //外层循环控制行
for(int i = 1; i <= 5; i++){//内层循环控制列
System.out.print("*");
}
System.out.println();
}
System.out.println();
System.out.println("------------------------------------------------");
/*
需求:
i j
* 1 1
** 2 2
*** 3 3
**** 4 4
***** 5 5
*/
for(int i = 1; i <= 5; i++){
for(int j = 1; j <= i; j++){
System.out.print("*");
}
System.out.println();
}
System.out.println();
System.out.println("------------------------------------------------");
/*
需求:
i j
***** 1 5
**** 2 4
*** 3 3
** 4 2
* 5 1
*/
for(int i = 1; i <= 5; i++){
for(int j = 1; j <= 6 - i; j++){
System.out.print("*");
}
System.out.println();
}
System.out.println();
System.out.println("------------------------------------------------");
/*
需求:
i j k
----* 1 1 4
---* * 2 2 3
--* * * 3 3 2
-* * * * 4 4 1
* * * * * 5 5 0
*/
for(int i = 1; i <= 5; i++){
for(int k = 1; k <= 5 - i; k++){ //-
System.out.print(" ");
}
for(int j = 1; j <= i; j++){ //*
System.out.print("* ");
}
System.out.println();
}
总结:注意转换思维,通过画图去解题
七、break和continue
break :
使用范围 : 1.在switch-case中 2.在循环结构中
作用 :1.在switch-case结构中用来跳出switch-case结构 2.在循环结构中用来终止当前循环
,在嵌套循环中 :用来终止包含它的那个循环的当前循环
例子:
for(int i = 1; i <= 3; i++){
for(int j = 1; j <= 3; j++){
System.out.println("j==" + j);
if(j == 2){
break; //在嵌套循环中用来结束包含它的那层循环的当前循环
}
}
System.out.println("i===" + i);
}
System.out.println();
continue
使用范围 :循环结构中
作用 :在循环结构中用来终止当次循环
在嵌套循环中 :用来终止包含它的那个循环的当次循环
for(int i = 1; i <= 3; i++){
for(int j = 1; j <= 3; j++){
if(j == 2){
continue; //在嵌套循环中用来结束包含它的那层循环的当次循环
}
System.out.println("j==" + j);
}
System.out.println("i===" + i);
}
如何结束外层循环?
1.给外层循环起个名字 : name : for(; ; ){}
2.break后面跟循环的名字 : break name;
lable : for(int i = 1; i <= 3; i++){
for(int j = 1; j <= 3; j++){
System.out.println("j==" + j);
if(j == 2){
break lable;
}
}
System.out.println("i===" + i);
}
System.out.println("程序结束");
总结:
嵌套循环中:关于break,在内层循环里面,外层循环不结束,如果是break加外层循环的名字的话就可以结束外层循环。在外层里面的话就直接结束外层循环,外层循环结束的话,整个嵌套循环结束。