【Java】逻辑基础

前言

大家好,我叫王山居,一个在CSDN上写写博客的不知名博主,如果我想…

在这里插入图片描述

简单,方法有三

其一:

在这里插入图片描述

其二:

在这里插入图片描述

其三:

在这里插入图片描述

编程语言的逻辑结构分类和上述三种方法差不多,无非三种:顺序结构、分支结构、循环结构

接下来,且听我细细道来…

一、顺序结构

顺序结构是三种结构中最简单的,就是按照代码书写的顺序一行一行的执行,书写顺序发生变化,执行的顺序就会发生改变,结果可能也会改变。

📑代码示例:

System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");
//运行结果
aaa
bbb
ccc

System.out.println("aaa");
System.out.println("ccc");
System.out.println("bbb");
//运行结果
aaa
ccc
bbb

二、分支结构

2.1 if语句

在这里插入图片描述

📑代码示例1:

int x = 10;
int y = 10;
if (x == 10)
	if (y == 10)
		System.out.println("aaa");
else
	System.out.println("bbb");

注意1:

if / else 语句中可以不加大括号 . 但是也可以写语句(只能写一条语句) else 总和位于它前面的最近的未配对的 if 配对, 但是实际开发中我们为了提高代码的可读性,不可将 else 悬空 , 最好加上大括号

📑代码示例2:

// 风格1
int x = 10;
if (x == 10) {
  // 当满足条件
} else {
  // 当不满足条件
}
// 风格2
int x = 10;
if (x == 10)
{
  // 当满足条件
}
else
{
  // 当不满足条件
}

注意2:

学过C语言的同学们会更加习惯风格2的代码书写形式.

但是在Java中风格1会更加的推荐把 ‘{’ 放在 if / else 同一行)

📑代码示例3:

int x = 20;
if (x == 10); {
  System.out.println("hehe");
}
//运行结果
hehe

注意3:

此处多写了一个 分号, 导致分号成为了 if 语句的语句体, 而 { } 中的代码已经成为了和一个 if 无关的代码块

2.2 switch语句

✒️基本语法形式:

switch(整数|枚举|字符|字符串){
	case 内容1 : {
	内容满足时执行语句;
	[break;]
	}
	case 内容2 : {
	内容满足时执行语句;
	[break;]
	}
	...
	default:{
	内容都不满足时执行语句;
	[break;]
	}
}

📑代码示例:

int day = 1;
switch(day) {
  case 1:
    System.out.println("数字1");
    break;
  case 2:
    System.out.println("数字2");
    break;
  case 3:
    System.out.println("数字3");
    break;
  default:
    System.out.println("输入有误");
    break;
}

🏸 代码结果:

在这里插入图片描述

💬代码解释:

  1. 就目前所学而言,不能switch 的参数的数据类型有 longfloatdoubleboolean
  2. 根据 switch 中值的不同, 会执行对应的 case 语句. 遇到 break 就会结束该 case 语句.
  3. 如果 switch 中的值没有匹配的 case, 就会执行 default 中的语句.我们建议一个 switch 语句最好都要带上 default.
  4. break 不要遗漏,不写 break 的时候, case 语句会依次向下执行, 从而失去了多分支的效果.
  5. switch 不能表达复杂的条件(类似于num > 10 && num < 20 ),这样的条件用 if 语句就可以轻易表达,switch 就不行.
  6. switch 虽然支持嵌套,但是美观性不高,不建议.

综上, 我们发现, switch 语句方便归方便,但使用局限性是比较大的.

三、循环结构

3.1 while循环

✒️基本语法形式:

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

📑代码示例:

计算 1 - 100 的和

int n = 1;
int result = 0;
while (n <= 100) {
	result += n;
	n++;
}
System.out.println(result);

🏸 代码结果:

在这里插入图片描述

注意:

  1. while后面的布尔表达式为真时即 true,则执行循环语句,完成一次循环之后再来判断表达式的值,重复操作,直到布尔表达式的值为假即 false 时,结束循环,该条while语句就执行完毕了。属于前测循环

  2. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句, 建议还是加上.

  3. 和 if 类似, while 后面的 ‘{’ 建议和 while 写在同一行.

  4. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行

3.2 break

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

📑代码示例:

找到 100 - 200 中第一个 3 的倍数

int num = 100;
while (num <= 200) {
	if (num % 3 == 0) {
		System.out.println("找到了 3 的倍数, 为:" + num);
		break;
	}
	num++;
}

🏸 代码结果:

在这里插入图片描述

💬代码解释:

while语句中有break,在循环中只要遇见break,就会停止后期的所有的循环,跳出循环语句,永久终止循环

3.3 continue

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

📑代码示例:

找到 10 - 20 中所有 3 的倍数

int num = 10;
while (num <= 20) {
	if (num % 3 != 0) {
		num++; // 这里的 ++ 不要忘记! 否则会死循环.
		continue;
	}
	System.out.println("找到了 3 的倍数, 为:" + num);
	num++;
}

🏸 代码结果:

在这里插入图片描述

💬代码解释:

执行到 continue 语句的时候, 就会立刻进入下次循环(判定循环条件), 从而不会执行到下方的打印语句

3.4 for循环

✒️基本语法形式:

for(表达式1;表达式2;表达式3){
	循环体;
}
  • 表达式1: 用于初始化循环变量.
  • 表达式2: 循环条件,一定要是布尔表达式
  • 表达式3: 更新循环变量

📑代码示例:

计算 5 的阶乘

int result = 1;
for (int i = 1; i <= 5; i++) {
	result *= i;
}
System.out.println("result = " + result);

🏸 代码结果:

在这里插入图片描述

注意:

  1. for( ; ; )无条件,无论如何都为真

  2. for(xx; ;xx)表达式2不写就没有了判断条件,为死循环,需要靠break语句跳 出循环

  3. for( ;xx; )表达式1不写,可以在for循环之前初始化循环变量,

​ 表达式3不写,可以在循环过程中改变循环控制变量的值

3.5 do while循环

✒️基本语法形式:

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

📑代码示例:

打印 1 - 10

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

注意:

  1. do while语句就是一种先斩后奏的后测循环,先执行循环体语句,然后求表达式的值。若表达式的值为真即true,返回继续执行循环体语句,如此重复,直到表达式的值为假即false,结束循环.
  2. do while 循环最后的分号不要忘记.
  3. 一般 do while 很少用到, 更推荐使用 forwhile.

彩蛋:实现猜数字游戏

系统自动生成一个随机整数(1-100), 然后由用户输入一个猜测的数字. 如果输入的数字比该随机数小, 提示 “低了”, 如果输入的数字比该随机数大, 提示 “高了” , 如果输入的数字和随机数相等, 则提示 “猜对了” .

public class TestDemo{
    public static void main(String[] args) {
        Random random = new Random();//默认随机种子是系统时间
        int guess = random.nextInt(100) + 1;
        Scanner scanner = new Scanner(System.in);
        while(true) {
            System.out.println("请输入要输入的数字: (1-100)");
            int num = scanner.nextInt();
            if (num < guess) {
                System.out.println("小了");
            } else if (num > guess) {
                System.out.println("大了");
            } else {
                System.out.println("猜对了");
                break;
            }
        }
        scanner.close();
    }
}

完!

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

富春山居_ZYY(已黑化)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值