1、本次的预计讲解的知识
1、判断语句的使用;
2、循环语句与循环控制、
2、具体内容
程序逻辑主要分为三种逻辑结构:顺序结构、分支结构、循环结构。其中顺序结构最好理解,所有的到吗都是由前向后执行的、,但是需要提醒的时候,有些时候顺序是以所在的“{}”为界限的。
2.1、分支结构
分支结构就是一种判断结构。对于分支结构有两类语法支持:if、seitch。
1、if分支语句:此类语句有多种定义形式: | ||
if | if...else | If...else if..else if...else |
if (布尔表达式) { 程序语句 } | if (布尔表达式) {//条件满足时执行 程序语句 } else {//条件不满足时执行 程序语句 } | if (布尔表达式1) {//条件满足时执行 程序语句 }else if (布尔表达式2) { 程序语句 } ... else {//条件不满足时执行 程序语句 } |
范例:进行判断
public class TextDemo { public static void main(String[] args) { double score = 90.0 ; if (score > 60.0) { System.out.println(及格); } } } |
在此样的操作里面,如果条件不满足发现就没有执行了。
范例:出现不满足的判断
public class TextDemo { public static void main(String[] args) { double score = 10.0 ; if (score < 60.0) { //条件满足 System.out.println("不及格"); } else if (score >= 60 && score <= 90) { System.out.println("中等成绩"); } else if (score > 90 && score <= 100) { System.out.println("优秀成绩"); } else { //条件都不满足 System.out.println("你家的成绩很奇怪!!!!!"); } } } |
整个if的判断都可以编写布尔表达式,但是色switch的判断不能够使用我们的布尔表达式,它最早的时候只能够及执行整数或者是字符的判断,但是从JDK1.5支持,枚举判断,但JDK1.7支持了String的判断。语法形式:
switch (整数 | 字符 | 枚举 | String) { case 内容 : { 内容满足时执行 ; [break ;] } case 内容 : { 内容满足时执行 ; [break ;] } case 内容 : { 内容满足时执行 ; [break ;] } [default : { 内容不满足时执行 ; [break ;] }] } |
在每一个case里面出现的break语句,表示的是体制case的执行,因为switch语句默认情况下会从第一个满足的case开始执行全部的代码,一直到整个switch执行完毕或者遇见break。
范例:使用switch判断
public class TextDemo { public static void main(String[] args) { int ch = 2 ; switch (ch) { case 2: { System.out.println("内容是2"); break ; } case 1: { System.out.println("内容是1"); break ; } case 3: { System.out.println("内容是3"); break ; } default: { System.out.println("没有内容"); } } } } |
千万记住的是:switch不能够判断布尔表式,它只能判断内容。
从JDK1.7开始switch终于在这么多年的呼唤下出下了字符串的判断。
public class TextDemo { public static void main(String[] args) { String str = "HELLO" ; switch (str) { case "HELLO": { System.out.println("HELLO"); break ; } case "hello": { System.out.println("hello"); break ; } case "mdl": { System.out.println("mdl"); break ; } default: { System.out.println("没有内容"); } } } } |
程序区分大小写关系的。
2.2、循环结构
当某代码需要一直重复执行的时候,就可以使用循环结构实现控制,对于循环结构有两种循环:while循环、do while循环。
1、while循环:分为两种形式语法:
while循环 | do while循环 |
while (判断条件) { 循环语句 ; 修改循环结束条件 ; } | do { 循环语句 ; 修改循环结束条件 ; } while (循环判断) ; |
所有的循环都必须有循环的初始化条件。每次循环的时候都要去修改这个条件,以判断循环是否结束。
范例:实现1...100的累加——使用while循环
public class TextDemo { public static void main(String[] args) { int sum = 0 ; //保存总合 int current = 1 ; //循环的初始化条件 while (current <= 100) { //循环结束条件 sum += current ; //累加 current++ ; } System.out.println(sum); } } |
while属于先判断条件后执行。
范例:使用do while循环
public class TextDemo { public static void main(String[] args) { int sum = 0 ; //保存总合 int current = 1 ; //循环的初始化条件 do { //循环结束条件 sum += current ; //累加 current++ ; } while (current <= 100); System.out.println(sum); } } |
Do while 循环指的是先执行一次,而后再进行判断,即:不管循环的条件是否满足,一定会执行一次。
以后的开发之中请彻底忘掉do while,根本就不会用。
2、for循环,语法:
for (循环初始化条件 ; 循环判断 ; 循环条件变更) { 循环语句 ; } |
范例:使用for循环进行1~100的累加
public class TextDemo { public static void main(String[] args) { int sum = 0 ; //保存总合 for (int current = 0 ; current <= 100 ; current ++) { //循环结束条件 sum += current ; } System.out.println(sum); } } |
但是有些时候for循环也会变为一下形式编写(不建议)
public class TextDemo { public static void main(String[] args) { int sum = 0 ; //保存总合 int current = 0 ; for ( ; current <= 100 ; ) { //循环结束条件 sum += current ; current ++ ; } System.out.println(sum); } } |
疑问?现在给出了两种循环的语法,那么开发里面用哪种?
l 如果不知道循环次数,但是不知道循环结束条件的时候使用while循环
l 如果已经明确知道循环次数了,使用for循环。
对于虚循环而言,是属于初学者刚刚开始接触程序最麻烦的一个环节,但是对于循环本身也是可以进行嵌套的,循环继续嵌套其它的循环。
范例:模拟抽烟
public class TextDemo { public static void main(String[] args) { int max = 9 ; for ( int x = 1; x < max ; x++ ) { //循环结束条件 System.out.print("开始抽烟" + x +"根烟,抽了"); for (int y = 1 ; y <= 20 ; y++ ) { System.out.print("嘬、"); } System.out.println(); //换行 } System.out.println("呵呵"); } } |
范例:打印口诀表
public class TextDemo { public static void main(String[] args) { for ( int x = 1; x <= 9 ; x++ ) { for (int y = 1 ; y <= x ; y++ ) { System.out.print(x +"*"+ y +"="+ x*y +"\t"); } System.out.println(); //换行 } } } |
但是对于循环嵌套操作,严格雷来讲属于比较麻烦的结构。
2.3、循环控制
循环控制一共有两种语句:continue(退出本次循环)、break(退出整个循环),此类语句要与判断语句结合使用。
范例:观察continue
public class TextDemo { public static void main(String[] args) { for ( int x = 0; x < 10 ; x++ ) { if (x == 3) { continue ; //之后代码不执行,直接结束本次循环 } System.out.println("x = " + x) ; } } } |
范例:观察break
public class TextDemo { public static void main(String[] args) { for ( int x = 0; x < 10 ; x++ ) { if (x == 3) { break ; //退出真个循环 } System.out.println("x = " + x) ; } } } |
3、总结
1、循环结构需要反复多写几次,因为你写的代码有可能出现死循环,指的是每次循环时的结束条件没有改变。
2、while用于不确定次数但是知道结束条件的循环,而for适合与明确知道循环次数的循环;
3、continue、break都需要与if语句结合。