一 顺序结构
二 分支结构——if判断
第一种格式:
if(关系表达式){
语句体;
}
- 首先计算关系表达式的值,如果值为true就执行语句体,否则不执行语句体,直接执行后面的语句
- 如果语句体只有一行代码,可以省略{}不写
- 如果对一个布尔类型的变量进行判断,不要使用==号,直接把变量作为关系表达式语句
第二种格式:
if(关系表达式){
语句体1;
}else{
语句体2;
}
- 首先计算关系表达式的值,如果值为true就执行语句体1,否则执行语句体2,再执行后面的语句(二选一)
练习: 假设某影院售卖了100张票,票的序号为1~100;其中奇数票号坐在左侧,偶数票号坐在右侧。键盘录入一个整数表示电影票的票号,根据不同情况,给出不同的提示
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int seat = sc.nextInt();
if(seat >= 0 && seat <= 100){
if (seat % 2 == 0){
System.out.println("坐在右侧");
}else{
System.out.println("坐在左侧");
}
}
}
}
第三种格式:
if(关系表达式1){
语句体1;
}else if (关系表达式2){
语句体2;
}
.......
else{
语句体n;
}
- 首先计算关系表达式1的值,如果值为true就执行语句体1,否则判断关系表达式2,如果为真则执行语句体2......如果所有关系表达式都为假,则执行语句体n,再执行后面的语句
练习:商场都有VIP的会员制,根据不同的会员有不同的折扣。假设商品总价为1000。键盘录入会员级别,并计算出实际支付的钱。会员1级:打九折;会员2级:打八折;会员3级:打7折;非会员不打折
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
int count = 1000;
Scanner sc = new Scanner(System.in);
int greed = sc.nextInt();
if (greed == 1){
System.out.println(0.9*count);
}else if (greed == 2){
System.out.println(0.8*count);
} else if (greed == 3) {
System.out.println(0.7*count);
}else{
System.out.println(count);
}
}
}
三 分支结构——switch选择
语法格式
switch(表达式){
case 值1:
语句体1;
break;
case 值2 :
语句体2;
break;
......
default:
语句体n;
break;
}
- 首先计算表达式的值,依次和case中的值比较,如果有对应的值,则执行相应的语句体,遇到break结束,如果均不匹配,则执行default中的语句,并结束整个Switch语句。
- case后面的值只能是字面量,不能是变量,且不能重复
- default的位置和省略:
- default可以省略,语法没有错误。其位置任意,但是永远会在最后执行。
case穿透:
如果没有break语句,就会产生brake穿透。首先计算表达式的值,依次和case中的值比较,如果有对应的值,则执行相应的语句体,并顺序执行下面的case语句体,直到遇到break或}为止。
如果多个case语句体的语句重复,可以考虑利用case穿透简化代码
switch新特性(简化书写)
switch(表达式){
case 值1->{
语句体1;
}
case 值2 ->{
语句体2;
}
......
default ->{
语句体n;
}
}
- 如果语句体只有1行代码,则{ }也可以省略
- switch和if第三种格式的使用场景:
- if的第三种格式一般用于对范围的判断
- switch一般用于有限个数据的一一列举
四 循环结构——for循环
for(初始化语句;条件判断语句;条件控制语句){
循环体语句;
}
- 初始化语句只执行一次;判断语句为真,继续循环;判断语句为假,结束循环。
练习:求1~5之间的和
public class HelloWorld {
public static void main(String[] args) {
/*求一到五之间的和*/
int sum=0;
for(int i=1;i<=5;i++){
sum = sum +i;
}
System.out.println(sum);
}
}
五 循环结构——while循环
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
do...while循环
初始化语句;
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
- 至少会执行一次循环体语句
while与for循环的对比:
两者运行规则相同;
for循环中,控制循环的变量归属于for循环的语法结构,在循环结束后就不能再次被访问了。而在while循环中,该变量独立于循环体之外,该变量在循环结束后可以继续使用。
for循环用于知道循环次数或循环范围的情况;while循环用于不知道循环次数和范围,但知道循环结束条件的情况。