JavaSE(四) —— 流程控制语句

一. 程序基本结构

1.1顺序结构

程序从上到下一行一行的执行代码,没有判断和中转。

1.2选择结构

有选择性的执行或则跳过指定代码
Java的选择结构使用选择语句来实现:
1 if语句
2 switch语句

1.3循环结构

重复执行一段代码,直到条件不成立。

二. if语句

if语句有四种使用形式:

  • if(条件){…}
  • if(条件){…}else{…}
  • if(条件){…}else if(条件){…}else{…}
  • if(条件){if(条件){…} } else {…}

以上这些 我想学习过的同学肯定都懂我就不贴代码了。。。(就是懒)
在这里插入图片描述
在某些简单的应用中,if语句是可以和三元运算符互换使用的。(我就喜欢这么用因为有B格 )

public static void main(String[] args) {
    int a = 10;
    int b = 20;
    //定义变量,保存a和b的较大值
    int c;
    if(a > b) {
       c = a;  
    } else {
       c = b;  
    }
    //可以上述功能改写为三元运算符形式
    c = a > b ? a:b;
}

二. switch语句

switch只适合做等值判断。
语法结构:

switch(表达式){
case 常量1:
代码块1;
break;
case 常量2 :
代码块2;
break;
case 常量3 :
代码块3;
break;
...
default:
默认代码块;
break;
}

2.1语法规则

  1. 表达式expr的值必须是下述几种类型之一:
    byte、short、int、char、enum(枚举);java7之后可以是String。
  2. case子句中的值const 必须是常量值(或final的变量),case中的值不能是一个范围
  3. 所有case子句中的值应是不同的,否则会编译出错;
  4. default子句是可选的(不是必须的)
  5. break语句用来在执行完一个case分支后使程序跳出switch语句块;否则会继续执行下去

2.2特殊用法:case穿透

在switch语句中,如果case的后面不写break,将出现穿透现象,也就是不会在判断下一个case的值,直接向后运
行,直到遇到break,或者整体switch结束。

public static void main(String[] args) {
  int i = 5;
  switch (i){
    case 0:
      System.out.println("执行case0");
      break;
    case 5:
      System.out.println("执行case5");
    case 10:
      System.out.println("执行case10");
    default:
      System.out.println("执行default");
  }
}

上述程序中,执行case5后,由于没有break语句,程序会一直向后走,不会在判断case,也不会理会break,直接
运行完整体switch。
由于case存在穿透性,因此初学者在编写switch语句时,必须要写上break。(有没有人第一次犯过错?被穿透)
在这里插入图片描述

三. 循环语句—for

for循环复杂一点的也就是多重嵌套了 但我相信大家都是聪明的孩子
for循环的九九乘法表应该是经典的题了,只要会了它,你就已经掌握了for的精髓

// 99乘法表
for (int i = 1;i<=9 ;i++ ){
for (int j = 1;j<=i ;j++ ){
System.out.print(i+"*"+ j+"="+i*j+"\t");
}
System.out.println();
}

四. 循环语句—while

4.1执行过程

先判断循环条件表达式的值。若为true.则执行循环体,然后再次判断条件并反复执行,直到条件不成立为止。
特点:先判断再执行(这是和do while最大的区别)

while循环的阶乘应该是经典的题了,只要会了它,你就已经掌握了while的精髓(刚开始我连阶乘是什么都忘了。。。)

 需求 :10 的阶乘
int sum = 1;
int j = 1;
while(j<=10){
 sum=sum*j;
 j++;
}
System.out.println("10的阶乘"+sum);

五. 循环语句—do while

5.1执行过程

先执行语句,再判表达式的值,若为true,再执行语句,否则结束循环。
特点:先执行,再判断。(这是while最大的区别)

do… while循环的打印100以内的奇数应该是经典的题了,只要会了它,你就已经掌握了do…while的精髓

int j = 1;
do{
System.out.println(j);
j+=2;
}while(j<100);

关于跳出循环

break:应用在switch和任何循环中,作用跳出(终止)语句块

continue:语句用于跳过某个循环语句块的一次执行,继续下一次执行
(结束本次循环,继续下一次循环,只能用在循环语句中,switch不行)

return:结束当前方法的进行,全都跳出去了

Lable标签(有B格的来了)

那么如何在多重循环中,想要最内层循环停止,能够让所有外层循环都停止呢?难道要写很多个break???
在这里插入图片描述
那就要用到有B格的Lable标签了
举例子

public class test3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		here://here只是一个名字,些什么都可以
		 for (int i = 0; i < 10; i++) {
			for (int j = 0; j < 10; j++) {
				System.out.println("逼格跳出");
				break here;//程序终止,跳到here位置
			}
			
		}
	System.out.println("222");
	
	System.out.println("333");
	}

}
/*
 * 结果为:
 * 逼格跳出
  222
  333
 */

可以看出程序中的循环跳到了here位置,并且跳出之后不再走循环,而是走循环下面的代码
(here标记位置一定要在break上面,不能向下跳,而且here要写在某一层循环上面,here除了循环语句,不能有其他语句。也就是说自能选择跳出第几层循环,而不是代码)


个人总结:
知道循环几次用for
不知道要循环几次用while/do…while

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值