大一,正在学习java中,文章有什么不对的地方,欢迎大家交流指正,共同学习进步!
是最基本,最简单的流程控制,默认执行结构,代码从上到下,从左到右执行
代码示例:
public class test{
public static void main(String[] args){
System.out.println("开始执行");
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println("执行结束");
}
}
1.三种形式:
}else if(条件表达式3){
语句3 ;
}…else{
语句n;
}
if后跟着的小括号中表达式如果结果true,就执行if后大括号中语句
if后小括号中表达式如果为false,就跳过if语句,执行后面的代码
如果if后条件表达式为true,就执行语句1,然后跳出if…else级联语句
如果if后条件表达式为false,判断条件表达式2, 如果条件表达式2为true,就执行语句2;然后跳出if…else级联语句
如果条件表达式2为false,判断条件表达式3, 如果条件表达式3为true,就执行语句3,然后跳出if…else级联语句
…n;
最后如果1到n-1条件表达式都为false, 就执行else语句中语句n;
注意事项:
小括号中表达式必须返回boolean类型结果
if后面的小括号后不需要要加分号,一旦加了分号if语句到分号就结束;
如果if语句后大括号中只有一条执行语句,可以省略大括号,但是建议加上大括号;如果有多条语句是不能省略大括号;
import java.util.Scanner;
public class test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入你的年龄:");
int age=sc.nextInt();
if(age>=18){
System.out.println("你可以上网");
}else {
System.out.println("未成年不可以上网");
}
System.out.println("欢迎下次光临");
}
}
switch语句:根据某个变量的值,判断符合那个条件,选择执行某个情况
switch(变量){
case 值1: 语句体1;
break;
case 值2: 语句体2;
break;
…
default: 语句体n+1;
break;
case后表达式要求: 只能是常量表达式
jdk1.5之前: byte, short, char, int
jdk1.5 支持枚举类型常量
jdk7: String
case后只能跟常量,而且case的常量不能重复
default语句可以省略,如果不写,就有可能哪一种情况都不执行,建议加上
default位置: 可以放在switch语句的任何位置,但是习惯放在最下面
switch语句结束条件: 第一种碰到break; 第二种碰到switch的结束右大括号;
如果多个case对应处理方式是一样的, 可以在最下面的case后写一个break, 在最下写处理情况,简化代码量
代码案例:
import java.util.Scanner;
public class test {
public static void main(String[] args) {
/* case 穿透
输入2022年一个月份, 输出当月的天数
1,3,5,7,8,10,12 31天
2 28天
4,6, 9, 11 30天
*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个2022年的月份");
int month = sc.nextInt();
switch(month){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
System.out.println(month+"月有31天");
break;
case 2:
System.out.println(month+"月有28天");
break;
case 4: case 6: case 9: case 11:
System.out.println(month+"月有30天");
break;
default:
System.out.println("你输入的月份有误");
break;
}
}
}
相同点:if语句和switch语句都可以实现分支结构
不同点:
if语句的格式比较灵活,更加强大,用的最多. 同样的情况switch实现可能比较复杂,而且能用switch的实现都可以使用if语句替换;
if语句一般用来判断连续性的值, switch语句更多是处理一些离散性的情况;
if语句每次都要条件表达式的值, switch语句只需要获取一次表达的值,所以switch在这一点上效率比较高;
循环体语句;
}
执行循环变量初始化
计算循环判断条件的表达式(boolean类型结果)
如果计算结果为false, 直接结束for循环语句
如果计算结果为true, 就执行循环体语句;
执行循环变量的增量
回到第2步
格式:
循环变量初始化;
while(循环判断条件){
循环体语句;
循环变量增量;
}
执行流程:
注意事项:
循环判断条件表达式必须返回boolean类型数据
不要忘记在大括号中写循环变量的增量
格式:
循环变量初始化;
do{
循环体语句;
循环变量增量;
}while(循环判断条件);
执行流程:
不管循环判断条件是否成立, 都会先执行一次循环体
while后的小括号后面必须加分号;
循环判断条件也必须是boolean类型表达式