java流程控制
1.0顺序结构
顺序结构就是程序执行从上到下依次进行执行。
例如:System.out.println("你好");
int num = 10 ;
System.out.println("num");
这段代码就会一次执行输出
你好
10
如果我们把num
放在最后声明,
System.out.println("你好");
System.out.println("num");
int num = 10 ;
就会报错。
System.out.println("num");;;;;
;
;
多个 ;
为空语句,也是完整的一句话,只是没有做任何输出。
2.0选择结构
选择结构也被称为分支结构,判断语句。我们用到的是`if`和`switch`语句。
if语句
2.1:用于一个条件的判断,如果满足就会执行
语句格式:
if(判断表达式){
条件表达式为true的时候执行的内容
}
案例: 某公司应聘员工要求必须要有两年工作经验以上的人员才能投寄简历。
分析: 1. 定义变量存放工龄; 2. 用工龄和要求进行对比; 3. 如果为true,投寄简历
public class Test{
public static void main(String [] args){
int work=3;//小张
if(work>2){
System.out.println("可以投寄简历");
}
}
}
2.2:用于两种条件的判断
语句格式:
if(){
满足条件执行的语句
}else{
不满足条件执行的语句}
案例:某公司应聘员工要求必须要有两年工作经验以上的人员才能投寄简历,不满足的给个友好的提示。
分析: 1. 定义变量存放工龄; 2. 用工龄和要求进行对比; 3. 如果为true,投寄简历,false则告诉用户不满足条件
public class Test{
public static void main(String [] args){
int work=3;//小张
if(work>2){
System.out.println("可以投寄简历");
}else{
System.out.println("不满足投寄条件");
}
}
}
案例:我们定义一个年份来判断是否是闰年
分析:1.定义变量存放年份信息;2.判断是否符合闰年的规则;3.输出打印结果
闰年:可以被4整除,不能被100整除,或者可以被400整除
public class Test{
public static void main(String [] args){
int year = 2000;
if(year %4==0 && year %100!=0 || year %400==0){
System.out.println("闰年");
}else{
System.out.println(year+"不是闰年");
}
}
}
2.3:用于多种条件的判断
语句格式:
if(){
满足条件执行的语句
}else if{
或者满足另一个条件执行的语句
}else{
不满足执行的语句
}
案例:输入数字1-7,对应输出是星期几
分析: 1. 定义变量数据信息; 2. 用该数据信息和要求进行对比; 3. 对应输出结果,不满足输出提示
public class Test{
public static void main(String [] args){
int day = 1;
if(day==1){
System.out.println("周一");
}else if(day==2){
System.out.println("周二");
}else if(day == 3){
System.out.println("周三");
}else if(day == 4){
System.out.println("周四");
}else if(day == 5){
System.out.println("周五");
}else if(day == 6){
System.out.println("周六");
}else if(day == 7){
System.out.println("周日");
}else{
System.out.println("不在一周的数字范围内");
}
}
}
2.4:if语句的总结
注意事项:if
语句可以单独使用,else
不能单独使用。if
语句后面不能加分号,一旦加了分号,就表示和后面没有任何关系了。if
或者else
语句,只有一句输出的时候,大括号可以忽略不写,但是不建议使用。
if(work >2 && age<35)//满足
System.out.println(“投寄简历”);
else //不满足
System.out.println("不满足条件");
if
语句可以嵌套多个if
和else
语句,次数没有限制。System.out.println("work>2 && age<35 ? "投寄简历":"不满足条件")
我们可以用这样的三元表达式来简化if else
语句,但是弊端因为三元表达式是一个运算符,所以必须要有结果。如果有多个嵌套,建议使用if else
。
switch语句
语句格式:
switch(表达式){
case 值1:执行语句;
case 值2:执行语句;
....
default:执行语句;
break
}
语句结构体分析:
- 只能为
byte、short、int、char(jdk6.0后的String)
类型 case
后面的值只能唯一,不能重复,只能是常量break
一旦遇到,结束switch
语句- 如果
case
执行语句后面不写break
,会一直执行下去,直到遇到break
,或者程序结束为止 - 默认
default
语句块,可以在程序的任意位置,它的执行的顺序是先判断所有的case
,当所有的case
都不满足,才会执行default
语句,建议放在最后 - 当有多个内容相同输出的时候,可以简写成:
case 1: case 2: case 3
System.out.println("......");
break;
案例:根据数字判断今天是周几
public class Test{
public static void main(String [] args){
int day = 1;
switch(day){
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;
}
}
}
案例:判断春夏秋冬
可以直接留一个输出,保留break;这样可以用到case
的穿透性和作用域。
public class test1 {
public static void main(String[] args) {
int m=3; //要判断的月份
switch (m){
case 3: case 4: case 5: //switch的穿透性
System.out.println("春天");
break;
case 6: case 7: case 8:
System.out.println("夏天");
break;
case 9: case 10: case 11:
System.out.println("秋天");
case 12: case 1: case 2:
System.out.println("冬天");
default
break;
}
}
}
这里运用了switch
的穿透性,即一个case
中没有break
结束的话程序会一直执行下去。
if和switch的区别
相同点:都可以用于分支结构;
不同点:使用场景不同;if
主要用在判断数据区间的时候,switch
主要用在判断值不多,并且值类型为byte、short、int、char、String
类型的时候。
如果两种情况都可以使用,建议使用switch
循环结构
3.1:while循环
语句格式:
while(条件表达式){
符合条件表达式为true的时候的内容
(重复或者有规律的内容)
}
案例:循环输出五次你好
int num = 1;
while(num>5){ //1 2 3 4 5
System.out.println("你好");
}
这里补充一个随机数:随机数100以内:(int)(Math.random()*100)+1;
3.2:do-while循环
语句格式:
do{ 有规律的内容或重复的内容 }while(条件表达式)
不管是否满足,都会执行一次,其他和while没有区别。
3.3:for循环
语句格式:
for(初始值表达式;循环条件;操作后的循环变量值的改变规律){
重复的内容或有规律的内容
}
口头记忆好方法:开始;范围;规律;或者开始;大小,怎么变。
public class TestFor{
public static void main(String [] args){
for(int i = 1; i <=10;i++){
System.out.println(“你好”);
}
}
}
后续博文,可直接点击跳转: