【JavaSE】逻辑控制

目录

1、顺序结构

2、分支结构

2.1、if语句

2.2、switch语句

3、循环结构

3.1、while循环

3.2、break 

3.3、continue

3.4、for循环

3.5、do while循环 

4、输入输出 

4.1、输出到控制台

4.2、从键盘输入

4.3、使用 Scanner 循环读取 N 个数字。

5、猜数字游戏 


1、顺序结构

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

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

2、分支结构

2.1、if语句

1、语法格式1

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

如果布尔表达式结果位true,执行if中的语句,否则不执行。

2、语法格式2

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

如果布尔表达式结果位true,则执行i分钟语句,否则执行else中语句。

举例:判断一个数是奇数还是偶数

int num = 10;
if (num % 2 == 0) {
  System.out.println("num 是偶数");
} else {
  System.out.println("num 是奇数");
}

3、语法格式3

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

表达式1成立,执行语句1,否则表达式2成立,执行语句2,否则执行语句3

举例:判断以数字是正数、负数、还是零

int num = 10;
if (num > 0) {
  System.out.println("正数");
} else if (num < 0) {
  System.out.println("负数");
} else {
  System.out.println("0");
}

练习:

1、判断1~100之间3和5的倍数

public class Test {
    public static void main1(String[] args) {
            int i = 1;
            while(i <= 100){
                if(i %3 ==0 && i % 5 ==0 ){
                    System.out.println(i);
                    i++;
                }else{
                    i++;
                    continue;
                 }
            }
      }
}

 2、判断一个年份是否位闰年

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.2、switch语句

基本语法

switch(表达式){
    case 常量值1:{
          语句1;
        break;
    }
    case 常量值2:{
          语句2;
        break;
    }
     
    default:{
    内容都不满足时执行语句;
        break;
    }
}

执行流程:

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

 注意事项:

不能做switch的参数的数据类型有哪些


long    double    float     boolean


3、循环结构

3.1、while循环

基本语法格式:

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

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

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

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

 代码示例2:计算1~100的和

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


// 执行结果
5050

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

特别注意:

1. 和 if 类似, while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加      上 { }
2. 和 if 类似, while 后面的 { 建议和 while 写在同一行.
3. 和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行.


3.2、break 

break的功能永久终止循环

代码示例:找到 100~200中第一个3的倍数


3.3、continue

continue的功能是:跳过本次循环后面的代码,进行下一次循环

 代码演示:找到100~200中所有3的倍数

public class Test {
    public static void main(String[] args) {
        int num = 100;
        while(num <= 200){
            if(num % 3 != 0) {
               num++;
               continue;
            }
            System.out.println("找到了3的倍数为:"+num);
            num++;
        }
    }

//结果太多了,如果感兴趣,可以拿这个代码运行一遍

3.4、for循环

基本语法:

for(表达式①;布尔表达式②;表达式③){
    表达式④;
}
  • 表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
  • 表达式2: 循环条件,满则循环继续,否则循环结束
  • 表达式3: 循环变量更新方式

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

 2、计算1!+ 2!+ 3!  + 4!  + 5!

 注意事项:和while循环类似

1. 和 if 类似, for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上{}
2. 和 if 类似, for 后面的 { 建议和 while 写在同一行.
3. 和 if 类似, for 后面不要多写 分号, 否则可能导致循环不能正确执行.
4. 和while循环一样,结束单趟循环用continue,结束整个循环用break


3.5、do while循环 

基础语法:

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

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

代码示例:打印1~10

 注意事项:

1. do while 循环最后的分号不要忘记
2. 一般 do while 很少用到, 更推荐使用 for 和 while.


4、输入输出 

4.1、输出到控制台

基本语法

System.out.println(msg); // 输出一个字符串, 带换行

System.out.print(msg); // 输出一个字符串, 不带换行

System.out.printf(format, msg); // 格式化输出
  • println 输出的内容自带 \n, print 不带 \n
  • printf 的格式化输出方式C 语言的 printf 是基本一致的.

代码示例:

System.out.println("hello world");

int x = 10;
System.out.printf("x = %d\n", x)


4.2、从键盘输入

再Java当中,我们会用到Java官方写好的一个工具———》Scanner

1、了解Scanner(类)

怎样证明他是一个类呢?

将鼠标放在Scanner上,按住Ctrl,用鼠标点过去,就可以看见Scanner中包含的方法

 打开上述内容之后

 

 这样就可以查看Scanner中所有的方法,

当然这么多的方法,也不可能全都记住,只需要学会使用它的方法就行。

2、使用Scanner读取字符串 / 整数 / 浮点数

1、 这里有一些小细节需要注意

 原因是在输入年龄后,按下的回车被后边的nextLIne读到了,所以没有输入名字程序就结束了。

 要修改也很简单,想办法将回车读完就行。

 2、这里再插图一个小问题


4.3、使用 Scanner 循环读取 N 个数字。

 注意事项:

当循环输入多个数据的时候, 使用 ctrl + z 来结束输入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl+ d).


5、猜数字游戏 

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

 生成随机数的方法:

1、通过凑的方法,生成你想要的任何范围的随机数。

int randNum = random.nextInt(100);//[0,100)
int randNum = random.nextInt(100)+100;//[100,200)
int randNum = random.nextInt(50)+50;//[50,100)

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值