目录 :
1 ) .语句( if )
2 ) .语句( if练习 )
3 ) .语句( switch )
4 ) . 语句(switch练习 )5 ) . 语句( while )6 ) . 语句( do while )7 ) . 语句( for )8 ) . 语句(for 和while的区别之处 )9 ). 语句( 循环语句的其他特点 )10 ).语句( for 嵌套 )11 ).语句( for 嵌套练习 )12 ).语句( for嵌套-九九乘法表 )13 ).语句( break-continue )14 ) .语句( 练习 )
一. 语句( if )
1 ) . 程序流程控制方式 的四大结构 --> 主要指if语句
1.1 顺序结构 --> 从上至下顺序执行的方式1.2 判断结构 --> if else if else1.3 选择结构--> switch(){case : { break;} case:{break;} default : {} }1.4 循环结构--> while ,dowhile , for
2 ) . if语句的三种格式 :
2.1 if(条件表达式) {执行语句;} --> 一层判断2.2 if(条件表达式){执行语句;}else{执行语句;} --> 两层判断2.3 if(条件表达式){执行语句;}else if(条件表达式){执行语句} ...else{执行语句;} --> 多层层判断
3 ) . if else 与三元运算符的区别 : 在于三元运算符必须要有一个结果
3.1 if esle 的简写格式 : 变量 =(条件表达式)?表达式1 ;表达式2 ;3.2 三元运算符 :好处 : 可以简化if else 代码弊端 : 因为是一个运算符,所以运算完必须要有一个结果例如 : int b ,a =5; 三元运算方式: b=(a>1)?100:200 ;
4 ) .
小结 :1. 当{}去掉的时候 if仅控制离它最近的一条语句2. 三元运算符是if else 的简写格式3. if else 的区间中中只要有一个满足则结束判断4. 理解代码区块的含义
二. 语句( if练习 )
1 ) . 需求一 : 根据用户定义的数值的不同,打印对应的星期英文class day04{public static void main(String[] args){//需求1 : 根据用户定义的数值的不同,打印对应的星期英文int num=1;if(num==1)System.out.println("moonday");else if(num==2)System.out.println("Tuesday");else if(num==3)System.out.println("Wednesday");else if(num==4)System.out.println("Thursday");else if(num==5)System.out.println("Friday");else if(num==6)System.out.println("Saturday");else if(num==7)System.out.println("Sunday");elseSystem.out.println("nono");}}2 ) . 需求二 : 根据用于指定月份,打印该月所属的季节class IfTextMonth{public static void main(String[] args){//需求2:根据用于指定月份,打印该月所属的季节//3,4,5 春季 6,7,8 夏季 9,10,11, 秋季 12,1,2 冬季//方式一 :/* int month=1;if(month==3 || month == 4 || month == 5)System.out.println(month+"月是春季");else if(month==6 || month == 7 || month ==8)System.out.println(month+"月是夏季");else if(month==9 || month == 10 || month == 11)System.out.println(month+"月是秋季");else if(month==12 || month == 1 || month == 2)System.out.println(month+"月是冬季");elseSystem.out.println(month+"月是不存在的,年轻人"); *///方式二 :int month=1;if(month>12||month<1)System.out.println(month+"月是不存在的,年轻人");else if(month==3 || month == 4 || month == 5)System.out.println(month+"月是夏季");else if(month==6 || month == 7 || month ==8)System.out.println(month+"月是夏季");else if(month==9 || month == 10 || month == 11)System.out.println(month+"月是秋季");elseSystem.out.println(month+"月是冬季");}}
小结 :1. 思路一 : 先判断符合标准的,再排除不符合标准的2. 思路二 : 先排除不符合标准的,再判断剩下符合标准的
三. .语句( switch )
1 ) . 简单演示使用 :class SwitchText{public static void main(String[] args){//简单演示switchint i=1;switch(i){case 1:System.out.println("该数值是"+i);break;case 2:System.out.println("该数值是"+i);break;case 3:System.out.println("该数值是"+i);break;case 4:System.out.println("该数值是"+i);break;case 5:System.out.println("该数值是"+i);break;default :System.out.println("非法数值");}}}2 ) . Switch语句的特点 :
2.1 switch语句选择的类型只有四种 : byte,short,int,char2.2case之间与default没有顺序,先执行第一个case,没有匹配的case执行default2.3 结束switch语句的两种情况 : 遇到break ,执行到switch 语句结束2.4 如果匹配的case或者default没有对应的break ,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束
小结 :1. switch中最后一个默认语句后的break可以省略
四. 语句(switch练习 )
1 ) . 需求 : 根据用于指定月份,打印该月所属的季节class SwitchText{public static void main(String[] args){//需求2:根据用于指定月份,打印该月所属的季节//3,4,5 春季 6,7,8 夏季 9,10,11, 秋季 12,1,2 冬季int month=1;switch(month){case 3:case 4:case 5:System.out.println(month+"月是春季");break;case 6:case 7:case 8:System.out.println(month+"月是夏季");break;case 9:case 10:case 11:System.out.println(month+"月是秋季");break;case 12:case 1:case 2:System.out.println(month+"月是冬季");break;default:System.out.println(month+"月不存在");}}}2 ) . if与switch的区别 :
3.1 if 优势及常用于 :[1] if容易判断区间但 switch不易 ;[2] if可以判断布尔类型但if不可以[3] 因此if常用于判断区间及布尔类型时3.2 switch优势及常用于 :[1] switch的执行效率比if稍高一些,因为break;[2] switch 在变量符合byte,short,int,char 这四种类型,也就是具体数值不多时做判断
小结 :1. switch 判断 数据值少时,if 判断有区间和有布尔类型时
五. 语句( while )
1 ) .引入 : 循环结构代表语句 : while , do while , for1.1 三种格式 :
[1] while (条件表达式){循环体(执行语句);}[2] do{执行语句;} while(条件表达式);[3] for (初始化表达式; 循环条件表达式;循环后的操作表达式){执行语句;}1.2 须知 :
[1] for里面的表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复整个过程,直到条件不满足为止[2] while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放,而while循环使用的变量在循环结束后还可继续使用[3] 最简单的无限循环格式: while(true) ,for(...),无限循环存在的原因是并不知道循环多少次,我们应根据某些条件,来控制循环
2 ) . WhileDemo :class WhileDemo{public static void main(String[] args){/**定义初始化表达式 :while(条件表达式){循环体(执行语句);}*/int x=1;while(x<=10){System.out.println("数值"+x);x++;}}}
小结 :1. 有开始就必须有结束
六. 语句( do while )
1 ) . DoWhile Demo :class DoWhileDemo{public static void main(String[] args){/**定义初始化表达式 :do {循环体(执行语句);}while(条件表达式);*/int x=1;do{System.out.println("Do : 数值"+x);x++;}while(x>=10);}}2 ) . while与do while的区别之处 :class DoWhileDemo{public static void main(String[] args){/**定义初始化表达式 :do {循环体(执行语句);}while(条件表达式);*/int x=1;do{System.out.println("Do : 数值"+x);x++;}while(x>=10);while(x>=10){System.out.println("数值"+x);x++;}}}
2.1 以上案例可知,当条件不满足时,while并没有走执行语句,而dowhile 却走了一次执行语句
3 ) . 结论 :
[1] while 先判断 后执行[2] do while 先执行一次,而后再判断
小结 :1. dowhile 的特点是 无论条件是否满足,循环体至少被执行一次
七. 语句( for )
1 ) . ForDemo :class ForDemo{public static void main(String[] args){/**for(初始化表达式;循环条件表达式;循环后的操作表达式){执行语句;}*/for(int i=1;i<=10;i++){System.out.println("for数值"+i);}}}2 ) . 特点 :
[1] 初始化条件只执行一次[2] 只要循环条件不满足,则结束3 ). 格式 : for (初始化表达式; 循环条件表达式;循环后的操作表达式){执行语句;}
小结 :1. 初始化表达式 -->定义变量2. 循环条件表达式-->做出判断3. 循环后的操作表达式-->设置自增
八. 语句(for 和while的区别之处 )
1 ) . For与while的区别Demo示例 :class ForDemo{public static void main(String[] args){/**for(初始化表达式;循环条件表达式;循环后的操作表达式){执行语句;}while(条件表达式){循环体(执行语句);}*/for(int i=1;i<=3;i++){System.out.println("for数值"+i);}//System.out.println("for最终数值"+i);//for的最终数值是输出不了的,是因为变量i的作用域仅仅在for的区间内int y=1;while(y<=3){System.out.println("while数值"+y);y++;}System.out.println("while最终数值"+y);}}2 ) . 区别之处 :
2.1 变量有自己的作用域,对于for而言,若将用于控制循环的增量定义在for语句中,那该变量只在for语句内有效,for语句执行完毕,该变量在内存中被释放; 而while 则不释放2.2 for和while可以进行互换,若需要定义循环增量,则for合适;若变量值要多次复用,则while合适
3 ) . 何时使用循环结构?
当要对某些语句执行多次时,就使用循环结构
小结 :1. for 循环结束后,for循环体内的变量不占内存,而while中的变量占
九. 语句( 循环语句的其他特点 )
1 ) . 不要局限自己的思维,觉得for内定是 变量自增,也有可能是其它输出,判断等class ForText{public static void main(String[] args){/**for(初始化表达式;循环条件表达式;循环后的操作表达式){执行语句;}while(条件表达式){循环体(执行语句);}*/int i =1;for(System.out.println("A");i<=3;System.out.println("B"),i++){System.out.println("E");}}}2 ) . 无限循环最简单的的表现形式 :
2.1 for --> for(;;){}2.2 while --> while(true){}
小结 :1. 初始化变量值的位置上只能放一个表达式,而循环后的操作表达式可放多个2. for循环语句内条件一般情况下必须得有,特殊情况没有条件默认为true : 无限循环
十. 语句( for 嵌套 )
1 ) .小练习 : 需求 : 求1-100之间7的倍数有多少个?class ForText{public static void main(String[] args){//步骤 ://1.定义循环语句,选择for语句//2.在循环中定义判断,只要是7的倍数即可,使用if语句,条件 : 7的倍数 x%7==0;//3.定义变量,该变量随着7的倍数的出现而自增int count=0;for(int i=1;i<=100;i++){if(i%7==0)count++;}System.out.println("在1-100中7的倍数有"+count+"个");}}
1.1 计算器的思想 : 通过一个变量记录住数据的状态变化 ,通过循环完成
2 ) . 循环嵌套-->直角三角形,尖角朝下
2.1 解释 : 语句嵌套其实也就是语句中还有语句
for(int i=0;i<5;i++){for(int y=i;y<5;y++){System.out.print("*");}System.out.println();}
小结 :1. 外循环控制行数,内循环控制列数2. 记得控制范围即可
十一. 语句( for 嵌套练习 )
1 ) . 循环嵌套-->直角三角形,尖角朝上for(int i=0;i<5;i++){for(int y=0;y<=i;y++){System.out.print("*");}System.out.println();}System.out.println("--------------------------");for(int i=0;i<=5;i++){for(int y=1;y<=i;y++){System.out.print(y);}System.out.println();}2 ) . 规律 :
[1] 尖角朝上,可以改变条件 ,让条件随着外循环变化[2]尖角朝下,可以改变初始值,让初始值随着外循环变化
十二. 语句( for嵌套-九九乘法表 )
1 ) . 九九乘法表 :for(int x=1;x<=9;x++){for(int y=1; y<=x; y++){System.out.print(y+"*"+x+"="+y*x+"\t");}System.out.println();}
小结 :1. 从宏观的架构层面去理解for循环,切记跳出圈
十三. 语句( break-continue )
1 ) . 简述 :
1.1 break (跳出) --> 应用范围 在 选择结构和循环结构中1.2 continue(继续) -->应用范围在循环结构
2 ) . 须知 :
2.1 这两个语句离开应用范围,存在时没有意义的2.2 这个两个语句单独存在下面都不不可以有语句,因为执行不到2.3 continue 语句时结束本次循环继续下次循环2.4 标号的出现,可以让这两个语句作用于指定的范围
3 ) . 演示 : 通过continue的跳出功能来筛选适合的数字,比如 5的倍数class breakDemo{public static void main(String[] args){//breakfor(int i=0;i<=5;i++){for(int y=0;y<=5;y++){System.out.println("*");break;}}System.out.println("-----------------------");int count=0;//continuefor(int i=1;i<=100;i++){if(i%5!=0)continue;System.out.println("五的倍数有:"+i);count++;}System.out.println("五的倍数总数是:"+count);}}4 ) . 须知 :
[1] break 和continue 语句作用的范围[2] break和continue单独存在时,下面不可以有任何语句,因为都执行不到[3] break 和continue不可单独存在,因为没有意义
小结 :1. 可以使用标号的方式给循环起名字,是区分循环嵌套结构的一种方式
2.break是直接跳出当前循环,相当于结束,而continue是跳出当前循环继续循环
十四. 语句( 练习 )
1 ) . 等边三角形 :class trigon{public static void main(String[] args){for(int i=0;i<=5;i++){for(int j=i;j<=5;j++){System.out.print(" ");}for(int z=0;z<i;z++){System.out.print("* ");}System.out.println();}}}2 ) . 效果图 :