选择结构
if else结构
三种类型:
if(布尔表达式) { //单分支
语句块1;
}
if(布尔表达式) { //双分支
语句块1;
} else {
语句块2;
}
if(布尔表达式) { //多分支
语句块1;
} else if {
语句块2;
} else {
语句块3;
}
实例:成绩的定性判断
功能:使用if语句对成绩定性判断
public class IfTest2 {
public static void main(String[] args) {
//创建对象
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请输入学生的考试成绩:");
int score = sc.nextInt();
//if语句格式3
if(score<0 || score>100){
System.out.println("你的成绩是错误的");
}else if(score>=90 && score<=100){
System.out.println("你的成绩属于优秀");
}else if(score>=80 && score<90){
System.out.println("你的成绩属于好");
}else if(score>=70 && score<80){
System.out.println("你的成绩属于良");
}else if(score>=60 && score<70){
System.out.println("你的成绩属于及格");
}else {
System.out.println("你的成绩属于不及格");
}
}
}
switch结构
语法结构:
switch (表达式) {
case 值1:
内容 1;
break;
case 值2:
内容 2;
break;
default:
break;
执行过程:
- 计算出表达式的值
- 拿计算出来的值和case后面的值依次比较,一旦有对应的值,就执行该处的语句,在执行过程中,遇到 break,就结束。
- 如果所有的case都不匹配,就会执行default控制的语句,然后结束。
注意:
1、switch后面小括号中表达式的值
必须是整型或字符型;JDK5以后可以是枚举,JDK7以后可以是字符串
2、case后面的值
可以是常量数值,如1、2;也可以是一个常量表达式,如2+2 ;但不能是变量或带有变量的表达式,如 a * 2
3、case匹配后,执行匹配块里的程序代码,如果没有遇见 break 会继续执行下一个的 case 块的内容,直到遇到 break 语句或者 switch 语句块结束
实例:
//程序功能:根据数字判断星期
import java.util.Scanner;
public class SwitchDemo {
public static void main(String[] args) {
//创建键盘录入对象
Scanner sc = new Scanner(System.in);
//接收数据
System.out.println("请输入一个数字(1-7):");
int weekday = sc.nextInt();
//switch语句实现选择
switch(weekday) {
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;
}
}
}
循环结构
三种循环的区别:
- do…while至少执行一次循环体
- for, while循环先判断条件是否成立,然后决定是否执行循环体
for和while的小区别:
- for循环的初始化变量,在循环结束后,不可以被访问。而while循环的初始化变量,是可以被继续使用的。
- 如果初始化变量,后面还要继续访问,就使用while,否则,推荐使用for。
循环的使用推荐:
for – while – do…while
两大关键字:
break:结束与该关键字最近的一个循环体;
continue:结束与该关键字最近的一循环体的一次循环,立即开始新的循环;
do while结构
语法结构:
初始化语句;
do {
循环体语句;
控制条件语句;
}while(判断条件语句);
执行流程:
step1: 执行初始化语句;
step2: 执行循环体语句;
step3: 执行控制条件语句;
step4: 执行判断条件语句,看是true还是false
- 如果是true,回到B继续
- 如果是false,就结束
执行过程:
- 先执行一遍循环操作,然后判断循环条件是否成立
- 如果条件成立,继续执行直到循环条件不成立为止
特点: 先执行,后判断
while结构
结构:
while(判断条件语句) {
循环体语句;
控制条件语句;
}
for结构
语法规则: for(循环变量初始化;循环条件;循环变量变化) { 循环操作 }
执行过程:
<1>、执行循环变量初始化部分,设置循环的初始状态,此部分在整个循环中只执行一次
<2>、进行循环条件的判断,如果条件为 true ,则执行循环体内代码;如果为 false ,则直接退出循环
<3>、执行循环变量变化部分,改变循环变量的值,是在执行完循环操作以后
<4>、又回到第<2>步继续执行
实例:
功能:统计[100,1000]内的水仙花数
public class ForTest5 {
public static void main(String[] args) {
//定义统计变量,初始化值是0
int count = 0;
//获取三位数,用for循环实现
for(int x=100; x<1000; x++) {
//获取三位数的个位,十位,百位
int ge = x%10;
int shi = x/10%10;
int bai = x/10/10%10;
//判断这个三位数是否是水仙花数,如果是,统计变量++
if((ge*ge*ge+shi*shi*shi+bai*bai*bai) == x) {
count++;
}
}
//输出统计结果就可以了
System.out.println("水仙花数共有:"+count+"个");
}
}
for each循环
格式:
for(元素的类型 变量 : 集合或者数组对象) {
可以直接使用变量;
}
实例:
public class Main {
public static void main(String[] args) {
int[] a = {1,2,4,5};
for(int i:a) {
System.out.println(i);
}
}
}