顺序结构 程序从上到下逐行地执行,中间没任何判断和跳转。
分支结构 根据条件,择性地执行某段代码。 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加外层循环的名字的话就可以结束外层循环。在外层里面的话就直接结束外层循环,外层循环结束的话,整个嵌套循环结束。