java基础之流程控制语句

流程控制语句

流程控制语句分类

  • 分支结构(if、switch)

  • 循环结构(for、while、do…while)

分支结构

if语句

​ 第一种格式:

​ if(关系表达式){

​ 语句体;

​ }

​ 执行流程:如果关系表达式成立,则执行语句体,

​ 如果关系表达式不成立,则不执行语句体。

代码案例:

public class demo1 {
    public static void main(String[] args) {
        //定义两个int类型的变量
        int a =10;
        int b=10;
        //判断两个变量是否相等
        if(a==b){
            System.out.println("a和b是相等的");
        }
        
    }
}

第二种格式:

if (关系表达式) {
语句体1;
} else {
语句体2;
}

执行流程:先判断关系表达式,看其是否成立(true:成立,false:不成立)

如果关系表达式成立,则执行语句体1,如果关系表达式不成立,则执行语句体2

代码示例:

/**
 * 判断两个整数是否相等,相等则打印“相等”,不相等则打印不相等
 */
public class demo1 {
    public static void main(String[] args) {

        int a = 10;
        int b = 20;
        if (a == b) {
            System.out.println("相等");
        } else {
            System.out.println("不相等");
        }
    }
}

第三种格式 :

if(关系表达式1){
语句体1;
}else if(关系表达式2){
语句体2;

}else if(关系表达式3){
语句体3;
}else if(关系表达式n){
语句体n;
}else{
语句体n+1;
}

代码示例:

/**
 * 需求:智能机器人小黑和你打招呼
 * 你说0~12的数字,小黑说:上午好
 * 你说13~18的数字,小黑说:下午好
 * 你说19~24的数字,小黑说:晚上好
 * 你说其他数字,小黑说:我不认识这个时间
 */
public class demo1 {
    public static void main(String[] args) {
 //1.定义变量,记录时间
         int time =8;
         if (time>=0 && time<=12){
             System.out.println("上午好");
         }else if(time>=13&& time<=24){
             System.out.println("下午好");
         }else if(time>=19&& time<=24){
             System.out.println("晚上好");
         }else {
             //说明上述的三组条件都不满足
             System.out.println("我不认识这个时间");

         }      
    }
}
switch语句
switch(表达式) {
	case1:
		语句体1;
		break;
	case2:
		语句体2;
		break;
	...
	default:
		语句体n+1;
		break; //最后一个可以省略
  • 执行流程:
    1、首先计算表达式的值
    2、以此和case后面的值进行比较,如果有对应值,就会执行相应语句,在执行过程中,遇到break就会结束
    3、如果所有的case的值和表达式的值都不匹配,就会执行default里面的语句体,然后程序结束
    注意事项:在switch语句中,如果case控制的语句后面不写break,将会出现 穿透 现象,在不判断下一个case的情况下,向下运行,直到遇到break,或者整体程序结束

循环结构

循环结构对于代码运行性能是比较浪费的,使用循环要考虑以下问题

  1. 循环结构选择
  2. 循环次数控制
  3. 循环终止条件控制
循环结构有哪些

for循环:

格式:
for(初始化语句;判断条件语句;控制条件语句){
循环体;
}
执行流程:
第一次循环:先执行初始化语句,然后执行判断条件语句
如果条件不成立:循环结束
如果条件成立:执行循环体,然后执行控制条件语句,此时,第一次循环执行结束
第二次循环:执行判断条件语句
如果条件不成立,循环结束
如果条件成立,执行循环体,然后执行控制条件语句,此时,第二次循环执行结束
以此类推…

代码示例:

public class demo1 {
    public static void main(String[] args)  {
        //需求:计算1~100之间的所有偶数和
        //定义一个求和变量sum
        int sum=0;
        for(int i=1;i<=100;i++){
           if(i%2==0){
               sum+=i;  
           }
        }
        System.out.println("sum"+sum);
    }
}

while

while (/* 循环判断,循环条件,要求为 boolean 类型 */) {
// 循环体
}

do…while

do {
// 循环体
} while (/* 循环判断,循环条件,要求为 boolean 类型 */);

循环控制的关键字

break 可以用于在满足条件的情况下,终止当前循环。

continue 终止本次循环,直接进入下一次循环,continue 有且只推荐在 for 循环中使用

代码示例

 /*
	break:


	     1 break;语句可以用在哪里呢?
			用在两个地方,其它位置不行
			第一个位置:switch语句当中,用来终止switch语句的执行。

			第二个位置:break;语句用在循环语句当中,用来终止循环的执行。
				

		2、break;语句的执行并不会让整个方法结束,break;语句主要是用来终止离它最近
		的那个循环语句。

*/
public class BreakTest01{

	public static void main(String[] args){

		// 输出0-9
		/*
		for(int i = 0; i < 10; i++){
			System.out.println("i = " + i);
		}
		*/

		for(int i = 0; i < 10; i++){
			if(i == 5){
				// break;语句会让离它最近的循环终止结束掉。
				break; // break;终止的不是if,不是针对if的,而是针对离它最近的循环。
			}
			System.out.println("i = " + i); // 0 1 2 3 4
		}

		// 这里的代码照常执行。break;的执行并不会影响这里。
		System.out.println("Hello World!");

		// 这个for循环两次
		for(int k = 0; k < 2; k++){ // 外层for
			for(int i = 0; i < 10; i++){ // 内层for
				if(i == 5){
					break; // 这个break;语句只能终止离它最近的for
				}
				System.out.println("i ===> " + i); //0 1 2 3 4 0 1 2 3 4
			}
		}

	}
}

continue;语句:
	
		1continue语句的作用是:
			终止当前"本次"循环,直接进入下一次循环继续执行。
			for(){
				if(){ // 当这个条件成立时,执行continue语句
					continue; //当这个continue语句执行时,continue下面的代码不执行,直接进入下一次循环执行。
				}
				// 以上的continue一旦执行,以下代码不执行,直接执行更新表达式。
				code1;
				code2;
				code3;
				code4;
			}
			
	public class ContinueTest01{
	public static void main(String[] args){



	/*输出结果
			i = 0
			i = 1
			i = 2
			i = 3
			i = 4
			i = 6
			i = 7
			i = 8
			i = 9
		*/
		for(int i = 0; i < 10; i++){
			if(i == 5){
				continue;
			}
			System.out.println("i = " + i); // 输出i是4
		}

	}
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值