JavaSE语法之三:逻辑控制(超全!!!)

一、概述

在这里插入图片描述

二、顺序结构

顺序结构比较简单,就是按照代码的书写顺序一行一行的执行。

		System.out.println("1");
		System.out.println("2");
		System.out.println("3");
		

三、分支结构(选择结构)

1. if 语句

语法格式1:

if(布尔表达式) {
//语句
}

语法格式2:

if(布尔表达式) {
// 语句1
}else{
// 语句2
}

语法格式3:

if(布尔表达式1) {
// 语句1
}else if(布尔表达式2) {
// 语句2
}else {
// 语句3
}

【练习】

  1. 判断一个数字是奇数还是偶数
	int num = 10;
	if (num % 2 == 0) {
		System.out.println("num 是偶数");
	}else {
		System.out.println("num 是奇数");
}	
  1. 判断一个数字是正数、负数、还是0
	int num = 10;
	if (num > 0) {
		System.out.println("正数");
	}else if (num < 0) {
		System.out.println("负数");
	}else {
		System.out.println("0");
}
  1. 判断一个年份是否为闰年
    闰年有普通闰年和世纪闰年之分。
    普通闰年:公历年份是4的倍数,且不是100的倍数。
    实际闰年:公历年份是整百数的,且必须是400的倍数。
	int year = 2000;
	if (year % 100 == 0) {
	//世纪闰年
		if (year % 400 == 0) {
			System.out.println("是闰年");
		}else {
			System.out.println("不是闰年");
	}
	}else {
	//普通闰年
		if (year % 4 == 0) {
			System.out.println("是闰年");
		} else {
			System.out.println("不是闰年");
	}
}

2. switch 语句

基本语法:

switch(表达式) {
case 常量值1:{
语句1;
break;
}
case 常量值2:{
语句2;
break;
}

default:{
内容都不满足时执行语句;
[break;]
}
}

执行流程:

  1. 先计算表达式的值;
  2. 和case依次比较,一旦有相应的匹配就执行该项下的语句,直到遇到break时结束;
  3. 当表达式的值没有与所列项匹配时,执行default。

**代码示例:**根据day的值输出星期

	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;
}

【注意】

  • 多个case后的常量值不可以重复

  • switch的括号内只能是以下类型的表达式:

    • 基本类型:byte、char、short、int、注意不能是long类型
    • 引用类型:String常量串、枚举类型

四、循环结构

1. while 循环

基本语法:

while(循环条件) {
循环语句;
}

循环条件为true,则执行循环语句;否则结束循环。

代码示例1: 打印 1 - 10 的数字

        int i = 1;
        while (i <= 10) {
            System.out.println(i);
            i++;
        }

代码示例2: 计算 1 - 100 的和(计算1 - 100 奇数的和)

		int i = 1;
        int sum = 0; 
        while (i <= 100) {
            sum += i;
            i++;
        }
        System.out.println(sum); //5050

		int a = 1;
		int sumOdd = 0; //奇数和的初始值
		while (i <= 100) {
            sumOdd += a;
            i += 2;
        }
        System.out.println(sumOdd);

代码示例3: 计算 5 的阶乘

 		int i = 1;
        int result = 1;
        while (i <= 5) {
            result *= i;
            i++;
        }
        System.out.println(result); //120

代码示例5: 计算 1!+ 2!+ 3!+ 4!+ 5!

		int a = 1;
        int sum = 0;
        while (a <= 5) { //外层循环做加法,计算各个阶乘相加的值
            int i = 1;
            int ret = 1;
            while (i <= a) { //内层循环计算阶乘的值
                ret *= i;
                i++;
            }
            sum += ret;
            a++;
        }
        System.out.println(sum);
    }
1.1 break

break 的功能是让循环提前结束。

 		int i = 1;
        while (i <= 10) {
            if (i == 2) {
                break;
            }
            System.out.println(i); //输出1
            i++;
        }
1.2 continue

continue 的功能是跳过这次循环, 立即进入下次循环。

 		int i = 1;
        while (i <= 10) {
            if (i == 2) {
                continue;
            }
            System.out.println(i); //死循环了,这里i到2的时候,跳过本次循环,没有+1,i一直是2,一直循环
            i++;
        }

题目示例: 找到 1 - 100 内,既能被3整除,也能被5整除的数字。 要求:使用break或者continue当中的一个。

  		int i = 1;
        while (i <= 100) {
            if (i % 15 != 0) {
                i++;
                continue;
            }
            System.out.println(i);
            i++;
        }

2. for 循环

【基本语法】

for(表达式①;布尔表达式②;表达式③){
表达式④;
}

  • 表达式1:用于初始化循环变量初始值设置,在循环最开始时执行,且执行一次
  • 表达式2:循环条件,满则循环继续,否则循环结束
  • 表达式3:循环变量更新方式

【执行过程】
①②③④—>②③④—>②③④—>……—>②为false,循环结束。

【代码示例】

  1. 打印 1 - 10 的数字
		for (int i = 1; i < 11; i++) {
            System.out.println(i);
        }
  1. 计算 1 - 100 的和
 		int sum = 0;
        for (int i = 0; i < 101; i++) {
            sum += i;
        }
        System.out.println(sum); //5050
  1. 计算 5 的阶乘
 int sum = 1;
        for (int i = 1; i <= 5; i++) {
            sum *= i;
        }
        System.out.println(sum); //120
  1. 计算 1!+ 2!+ 3!+ 4!+ 5!
		int result = 0;
        for (int i = 1; i <= 5; i++) { 
            int sum = 1;
                for (int j = 1; j <= i; j++) {
                    sum *= j;
            }
                result += sum;
        }
        System.out.println(result); //153

3. do while 循环

do{
循环语句;
}while(循环条件);

先执行循环语句,再判定循环条件,循环条件成立则继续执行,否则循环结束。

【代码示例】
打印 1 - 10

 		int i = 1;
        do {
            System.out.println(i);
            i++;
        }while (i <= 10);

【注意】

  1. do while 循环最后的分号不要忘记
  2. 一般 do while 很少用到,更推荐使用 for 和 while
  • 45
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值