五、程序流程控制
选择结构
程序的流程结构:顺序结构,选择结构,循环结构
通过分支语句实现:if,switch
条件运算符
语法结构:
X ? Y : Z
X必须是boolean类型的表达式:True,False
X的值为true–>取Y的值
X的值为false–>取Z的值
示例:
package com.tuling.part1; /** * 三元运算符 */ public class Demo1 { public static void main(String[] args) { int score = 55; String res = score >= 60 ? "及格" : "不及格"; System.out.println("res:" + res); } }
练习:
练习1:给定一个年龄,判断是否成年,18岁是分界线
if语句
简单if语句语法:
if (条件){ 执行语句 }
示例:
package com.tuling.part4; /** * if语句 */ public class Demo4 { public static void main(String[] args) { /* if(布尔表达式) { // 如果布尔表达式为 true 将执行的语句 } */ // int a = 88; // // if(a>0){ // System.out.println("88大于0"); // } // // System.out.println(".....over....."); } }
练习:
练习1:给定一个数,打印它的绝对值
练习2:给定一个成绩,如果大于等于60分,就打印及格
if else语句 if (条件){ 执行语句1 }else{ 执行语句2 }
示例:
package com.tuling.part4; /** * if.....else.....结构 */ public class Demo_if_else { public static void main(String[] args) { /* if(布尔表达式){ // 如果布尔表达式的值为 true }else{ // 如果布尔表达式的值为 false } */ int score = 12; if(score>=60){ System.out.println("及格"); }else{ System.out.println("不及格"); } } }
练习:
练习1:给定一个数,输出是奇数还是偶数(能否被2整除)
if的嵌套
if (条件1){ 执行语句1 }else if(条件2){ 执行语句2 }else ....
示例:
package com.tuling.part4; /** * 嵌套的if....else */ public class Demo_if_else2 { public static void main(String[] args) { char sex = '中'; if(sex=='男'){ System.out.println("男厕所"); }else{ if(sex=='女'){ System.out.println("女厕所"); }else{ System.out.println("我就不知道了"); } } } }
练习:
练习1:给定一个成绩:打印级别
【0-59】不及格 【60-69】及格 【70-79】中等 【80-89】良好 【90-100】优秀
switch语句
可以实现选择结构
switch( 变量 ){ case 常量值1: 分支1; break; case 常量值2: 分支2; break; ... default: }
示例:
/** * switch结构 */ public class Demo_switch { public static void main(String[] args) { /* switch(expression){ case value : // 语句 break; // 可选 case value : // 语句 break; // 可选 // 你可以有任意数量的 case 语句 default : // 可选 // 语句 } */ int num = 5; switch (num){ default: System.out.println("非法数字"); case 1: System.out.println("第一季度"); break; case 2: System.out.println("第二季度"); break; case 3: System.out.println("第三季度"); break; case 4: System.out.println("第四季度"); break; } } }
注意事项:
1.作用在int类型,byte,short,int,char,String,枚举
2.case后的数值必须唯一
3.case可以无序
4.break用于防止switch的穿透
5.default是可选的语句。
练习:
练习1:给定一个月份,打印是哪个季节
3-5:春季 6-8:夏季 9-11:秋季 12-2:冬季
循环结构
for循环
选择结构:条件满足,某些代码才会被执行。
执行次数:0,1。
循环结构:条件满足,某些会被反复的多次执行,直到条件不满足。
执行次数:0,1,多次
语法结构:
for (初始化表达式; 循环条件; 操作表达式) { 执行语句; ...... } for (表达式1; 表达式2; 表达式3) { 执行语句; ...... }
示例:
//打印5次hellworld for(int i=1;i<=5;i++){//i=1,2,3,4,5 //里面的语句会循环执行 System.out.println("hello,world----->"+i); }
循环结构:条件满足,循环体要多次执行,直到条件不满足为止。
for(表达式1;表达式2;表达式3){ 循环体; } 循环语句和分支语句的结合 System.out.println("1-100内所有的偶数:"); for(int i=1;i<=100;i++){ //i=1;i%2!=0,所以 i%2==0不成立 //i=2;i%2==0,所以 i%2==0成立 //..... if(i%2==0){ System.out.println(i); }
练习:
练习1:打印1-100内,能被3整除,不能被5整除的数, 每行打印5个,统计打印数字的个数
循环的嵌套
***** ***** ***** ***** ***** System.out.print("*")
练习:
* ** *** **** *****
while循环
语法:
while(循环条件){ 循环体; }
先判断循环条件,如果满足,就执行里面的循环体;然后再来判断条件是否依然成立,如果成立继续执行,否则结束了循环。
int i= 1; while(i<=5){ System.out.println(i); i++; } System.out.println("退出循环的时候i的值:"+i);
练习:
练习1:打印1-100内能被7整除的数
do-while循环 do{ 循环体; }while(条件);
先执行循环体,然后判断条件,如果满足,再执行循环体,再判断条件,如果不满足就结束了循环。
至少执行1次。
while:先判断,再执行
do-while:先执行,再判断
/* *求1-5的和 */ int i = 1; int sum = 0; do{ sum +=i; //+1+2+3+4+5 i++;//2,3,4,5,6 }while(i<6); System.out.println("sum:"+sum);
练习:
练习2:求1-5的阶乘的和
break、continue
break:词意:打破,破坏
用法1:在switch中,用于防止穿透。
用法2:在循环中:for,while,do-while,用于强制结束循环。终止。
continue:词意:继续
只是结束某一次循环,循环下次继续的。中止。
break示例:
/** * 循环当中的break; */ public class Demo_break { public static void main(String[] args) { for(int i = 1;i<=10;i++){ for(int j=1;j<=10;j++){ if(j==5){ break; } System.out.println("j:"+j); } /* i=1 i=2 i=3 i=4 i=5 */ // if(i==5){ // break;//i==5的时候,跳出循环; // } System.out.println(i); } } }
continue示例:
public class Demo_continue { public static void main(String[] args) { for(int i=1;i<=5;i++){ for(int j=1;j<=5;j++){ if(j==2){ continue;//只用于结束某一次循环 } System.out.println("j:"+j); } System.out.println(i); } } }
return示例:
public class Demo_return { public static void main(String[] args) { for(int i=1;i<=5;i++){ if(i==2){ return;// } System.out.println(i); } } }