一、if条件控制语句
public class Demo1If {
public static void main ( String [ ] args) {
System . out. println ( "开始" ) ;
int age = 17 ;
if ( age >= 18 ) {
System . out. println ( "可以上网吧" ) ;
}
System . out. println ( "结束" ) ;
}
}
public class Demo2If {
public static void main ( String [ ] args) {
int num = 9 ;
if ( num % 2 == 0 ) {
System . out. println ( "偶数" ) ;
} else {
System . out. println ( "奇数" ) ;
}
}
}
public class Demo3If {
public static void main ( String [ ] args) {
int score = - 1 ;
if ( score >= 90 && score <= 100 ) {
System . out. println ( "优秀" ) ;
} else if ( score >= 80 && score <= 89 ) {
System . out. println ( "良好" ) ;
} else if ( score >= 70 && score <= 79 ) {
System . out. println ( "中等" ) ;
} else if ( score >= 60 && score <= 69 ) {
System . out. println ( "及格" ) ;
} else if ( score >= 0 && score <= 59 ) {
System . out. println ( "请努力加油" ) ;
} else {
System . out. println ( "成绩有误!" ) ;
}
}
}
import java. util. Scanner ;
public class Test {
public static void main ( String [ ] args) {
Scanner sc = new Scanner ( System . in) ;
System . out. println ( "请输入您的成绩:" ) ;
int score = sc. nextInt ( ) ;
if ( score >= 0 && score <= 100 ) {
if ( score >= 95 && score <= 100 ) {
System . out. println ( "自行车一辆" ) ;
} else if ( score >= 90 && score <= 94 ) {
System . out. println ( "游乐场一次" ) ;
} else if ( score >= 80 && score <= 89 ) {
System . out. println ( "变形金刚一个" ) ;
} else {
System . out. println ( "挨顿揍, 这座城市又多了一个伤心的人~" ) ;
}
} else {
System . out. println ( "您的成绩输入有误!" ) ;
}
}
}
二、switch语句
格式
首先计算出表达式的值 其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束 最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉
```java
switch ( 表达式) {
case 1 :
语句体1 ;
break ;
case 2 :
语句体2 ;
break ;
. . .
default :
语句体n+ 1 ;
break ;
}
案例:根据week变量记录的数值, 程序输入对应的星期
public class Demo1Switch {
public static void main ( String [ ] args) {
int week = 100 ;
switch ( week) {
case 1 :
System . out. println ( "星期一" ) ;
break ;
case 2 :
System . out. println ( "星期二" ) ;
break ;
case 3 :
System . out. println ( "星期三" ) ;
break ;
case 4 :
System . out. println ( "星期四" ) ;
break ;
case 5 :
System . out. println ( "星期五" ) ;
break ;
case 6 :
System . out. println ( "星期六" ) ;
break ;
case 7 :
System . out. println ( "星期日" ) ;
break ;
default :
System . out. println ( "您的数据有误" ) ;
break ;
}
}
}
case穿透
概述 : 如果switch语句中,case省略了break语句, 就会开始case穿透 现象:当开始case穿透,后续的case就不会具有匹配效果,内部的语句都会执行,直到看见break,或者将整体switch语句执行完毕,才会结束
import java. util. Scanner ;
public class Demo2Switch {
public static void main ( String [ ] args) {
Scanner sc = new Scanner ( System . in) ;
System . out. println ( "请输入星期数:" ) ;
int week = sc. nextInt ( ) ;
switch ( week) {
case 1 :
case 2 :
case 3 :
case 4 :
case 5 :
System . out. println ( "工作日" ) ;
break ;
case 6 :
case 7 :
System . out. println ( "休息日" ) ;
break ;
default :
System . out. println ( "您的输入有误" ) ;
break ;
}
}
}
三、for循环
for循环格式
初始化语句:用于表示循环开启时的起始状态,简单说就是循环开始的时候什么样 条件判断语句:用于表示循环反复执行的条件,简单说就是判断循环是否能一直执行下去 循环体语句:用于表示循环反复执行的内容,简单说就是循环反复执行的事情 条件控制语句:用于表示循环执行中每次变化的内容,简单说就是控制循环是否能执行下去
for ( 初始化语句; 条件判断语句; 条件控制语句) {
循环体语句;
}
执行流程
①执行初始化语句 ②执行条件判断语句,看其结果是true还是false
如果是false,循环结束 如果是true,继续执行 ③执行循环体语句 ④执行条件控制语句 ⑤回到②继续 案例:输出100-999之间的水仙花数
解释:什么是水仙花数?
水仙花数,指的是一个三位数,个位、十位、百位的数字立方和等于原数 例如 153 33 3 + 55 5 + 11 1 = 153
public class Demo5For {
public static void main ( String [ ] args) {
for ( int i = 100 ; i <= 999 ; i++ ) {
int ge = i % 10 ;
int shi = i / 10 % 10 ;
int bai = i / 10 / 10 % 10 ;
if ( ( ge* ge* ge + shi* shi* shi + bai* bai* bai) == i) {
System . out. println ( i) ;
}
}
}
}
四、while循环
初始化语句;
while ( 条件判断语句) {
循环体语句;
条件控制语句;
}
while循环执行流程
①执行初始化语句 ②执行条件判断语句,看其结果是true还是false
如果是false,循环结束 如果是true,继续执行 ③执行循环体语句 ④执行条件控制语句 ⑤回到②继续 案例:珠穆朗玛峰
public class Demo2While {
public static void main ( String [ ] args) {
int count = 0 ;
double paper = 0.1 ;
int zf = 8844430 ;
while ( paper <= zf) {
paper *= 2 ;
System . out. println ( paper) ;
count++ ;
}
System . out. println ( count) ;
}
}
五、dowhile循环
完整格式
特点:do…while循环, 无论循环条件是否满足, 都至少会执行一次循环体
初始化语句;
do {
循环体语句;
条件控制语句;
} while ( 条件判断语句) ;
执行流程
① 执行初始化语句 ② 执行循环体语句 ③ 执行条件控制语句 ④ 执行条件判断语句,看其结果是true还是false
如果是false,循环结束 如果是true,继续执行 ⑤ 回到②继续
public class Demo1DoWhile {
public static void main ( String [ ] args) {
int i = 11 ;
do {
System . out. println ( "黑马程序员" ) ;
i++ ;
} while ( i <= 10 ) ;
System . out. println ( i) ;
}
}
六、三种循环的区别
三种循环的区别
for循环和while循环先判断条件是否成立,然后决定是否执行循环体(先判断后执行) do…while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体(先执行后判断) for和while的区别
条件控制语句所控制的自增变量,因为归属for循环的语法结构中,在for循环结束后,就不能再次被访问到了 条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用
public class Loop {
public static void main ( String [ ] args) {
for ( int i = 1 ; i <= 5 ; i++ ) {
System . out. println ( i) ;
}
System . out. println ( "--------------" ) ;
for ( int i = 1 ; i <= 10 ; i++ ) {
System . out. println ( i) ;
}
System . out. println ( "--------------" ) ;
int a = 1 ;
while ( a <= 5 ) {
System . out. println ( a) ;
a++ ;
}
System . out. println ( a + "..." ) ;
}
}
public class Loop {
public static void main ( String [ ] args) {
do {
System . out. println ( "我停不下来了~" ) ;
} while ( true ) ;
System . out. println ( "看看我能被执行吗?~" ) ;
}
}
七、跳转控制
public class Demo1Continue {
public static void main ( String [ ] args) {
for ( int i = 1 ; i <= 24 ; i++ ) {
if ( i == 4 ) {
continue ;
}
System . out. println ( i + "层到了~" ) ;
}
}
}
public class Demo2Break {
public static void main ( String [ ] args) {
for ( int i = 20 ; i <= 80 ; i++ ) {
if ( i == 60 ) {
break ;
}
System . out. println ( i + "岁正在上班" ) ;
}
}
}
案例:减肥计划
break和continue只能跳出、跳过自己所在的那一层关系,如果想要跳出、跳过指定的一层可以加入标号,如lo:while(true)
、break lo;
import java. util. Scanner ;
public class Test {
public static void main ( String [ ] args) {
lo: while ( true ) {
System . out. println ( "请输入您要查看的星期数:" ) ;
System . out. println ( "(如无需继续查看,请输入0退出程序)" ) ;
Scanner sc = new Scanner ( System . in) ;
int week = sc. nextInt ( ) ;
switch ( week) {
case 0 :
System . out. println ( "感谢您的使用" ) ;
break lo;
case 1 :
System . out. println ( "跑步" ) ;
break ;
case 2 :
System . out. println ( "游泳" ) ;
break ;
case 3 :
System . out. println ( "慢走" ) ;
break ;
case 4 :
System . out. println ( "动感单车" ) ;
break ;
case 5 :
System . out. println ( "拳击" ) ;
break ;
case 6 :
System . out. println ( "爬山" ) ;
break ;
case 7 :
System . out. println ( "好好吃一顿" ) ;
break ;
default :
System . out. println ( "您的输入有误" ) ;
break ;
}
}
}
}