【Java SE】逻辑控制

Java语法基础(逻辑控制)


目录

前言:

一,顺序结构

二,分支结构(选择结构)

✨if 语句

✨switch语句

三,循环结构

✨while循环:

✨do-while循环

✨for循环

✨跳出循环和结束循环

四,输入输出

✨使用Scanner类进行输入

✨输出:

总结:


前言:

    

   在上篇中,我们介绍了Java的各种运算符, 本文将详细介绍 Java 中的三种逻辑结构:顺序结构、分支结构、循环结构,这三大结构也是代码的组成方式。是支撑编程语言成功执行的核心。非常重要!!!

                                                                   

一,顺序结构


⚙顺序结构就是按照代码的书写顺序一行一行的去执行。

图示:

 代码示例:

System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");

/*运行结果:
aaa
bbb
ccc
*/

如果我们调整一下代码的书写顺序,那代码的运行顺序也会改变。

代码示例:

System.out.println("ccc");
System.out.println("bbb");
System.out.println("aaa");

/*运行结果:
ccc
bbb
aaa
*/

tip:顺序结构是最简单的算法结构。

二,分支结构(选择结构)


⚙ 程序在运行过程中,根据不同的条件执行不同的语句。

✨if 语句

①单选择结构:

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

图示:

执行过程:判断是否满足条件,若满足执行语句。

代码示例:判定一个数字是奇数还是偶数

  public static void main(String[] args) {
        //判定一个数字是奇数还是偶数
        int a = 6;
        if(a % 2 == 0) {
            System.out.println(a+" 是偶数");
        }

    }

// 运行结果:6 是偶数 

②双选择结构:

if(布尔表达式){
      语句一;
} else {
      语句二;
}

图示:

执行过程:判断是否满足条件,满足执行语句一,不满足执行语句二。

代码示例:判定一个数字是奇数还是偶数,并输出结果

 public static void main(String[] args) {
        //判定一个数字是奇数还是偶数
        int a = 5;
        if(a % 2 == 0) {
            System.out.println(a+" 是偶数");
        } else {
            System.out.println(a+" 不是偶数");
        }

    }

//运行结果:5 不是偶数

③多选择结构:

if(条件表达式1) {
    语句一;
} else if(条件表达式2) {
    语句二;
} else if{
    语句三;
}

图示:

执行过程:判断如果条件1成立,执行语句一,条件2成立,执行语句二,条件3成立执行语句三。

代码示例:判断一个数是正数,负数或者是0并输出结果

 public static void main(String[] args) {
        //判断一个数是正数,负数或者是0并输出结果
        int a = 10;
        if(a > 0) {
            System.out.println(a+" 是正数");
        } else if(a < 0) {
            System.out.println(a+" 是负数");
        } else if(a == 0) {
            System.out.println(a+" 是0");
        }
    }

//运行结果:10 是正数

tip:条件判断存在多个备选情况。

✨switch语句

       switch条件语句是一个很常用的选择语句,和if 条件语句不同,它只能针对某个表达式的值做出判断从而决定程序执行哪一个代码,效率比if多选择结构要高。

基本语法:

switch (表达式) {
 case1:
   语句一;
   break;
 case2:
   语句二;
   break;
 case3:
   语句三;
   break;
 default://当所有条件都不满足时
   语句四;
   (break;)
}

 执行过程:先计算表达式的值,和执行对应case下的语句,直到break结束,当表达式的值没有    与之对应的case相匹配时,执行default。

tip: default选项可以不写,不是必须放在最后一个(建议放在最后),default可以不写break。

代码示例:轮值表

 public static void main(String[] args) {
        //轮值表
        int a = 5;
        switch(a) {
            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:
            case 7:
                System.out.println("星期天:小高值日");
                break;
            default:
                System.out.println("输入错误");
        }
    }

//运行结果:星期五:小樊值日

 🔑注意:

1,多个case后的常量值不可以重复。

                                                               

2,不能做switch的参数的数据类型:long,float,double,boolean。

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

  • 基本类型:byte,int ,short,char
  • 引用类型:String常量串,枚举类型。

4,switch语句要和break配合,否则在满足条件后,将该条件下的其他条件语句一起顺序输出,直到遇到break或者 “}” 停止。

5,switch 不能表达复杂的条件。

                                                                                     

三,循环结构


⚙循环结构指在满足循环条件情况下,一直执行,直到不满足为止

✨while循环:

基本语法:

循环变量声明:
while(循环条件){
   循环语句;
   循环变量改变;

}

执行过程:当循环条件为真的时候,执行循环语句,否则跳出循环。

tip:循环条件只能是布尔表达式。

代码示例:输出从1到10的数字

    public static void main(String[] args) {
        //输出从1到10的数字
        int a = 1;  //声明循环变量
        while(a <= 10) {
            System.out.print(a+" ");
            a++;    //循环变量改变
        }
    }

//运行结果:1 2 3 4 5 6 7 8 9 10

小结:

  • 大多数情况下会设置一个不会死循环的循环条件。
  • 只要循环条件是true,循环将一直执行下去,只有少数情况下需要一直执行。
  • 在正常编程中,应该尽量避免死循环,会影响程序性能或者造成程序卡死奔溃。

✨do-while循环

基本语法:


循环变量声明;
do {
  循环语句;
  循环条件改变;
} while (循环条件);

执行过程:先执行一次循环语句,在判定循环条件,条件成立继续执行,否则循环结束。

代码示例:输出1到10的数字

public static void main(String[] args) {
        //输出1到10的数字
        int a = 1;
        do {
            System.out.print(a+" ");
            a++;
        } while (a <= 10);
    }

//运行结果:1 2 3 4 5 6 7 8 9 10

tip:do-while循环和while循环相似,不同的是do-while循环至少执行一次。

✨for循环

基本语法:

for(表达式一,表达式二,表达式三 { 
         循环体;
}

执行过程:先执行表达式一,且只执行一次,然后判断表达式二是否为真,然后再循环体,最后执行表达式三,一直循环,直到表达式为假的时候。

小结:

  • 表达式一代表循环变量声明
  • 表达式二代表循环条件
  • 表达式三代表循环变量改变

代码示例:输出乘法口诀表

 public static void main(String[] args) {
        //输出乘法口诀表
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print(i+"*"+j+"="+i*j+" ");
            }
            System.out.println();
        }
    }

运行结果:

tip:在Java5中引入了一种主要用于数组或集合的增强型for循环。 

增强型for循环基本语法:

for(声明语句 : 表达式){
    // 代码句子
}
  • 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
  • 表达式:表达式是要访问的数组名,或者返回值为数组的方法

代码示例:

public static void main(String[] args) {
        int[] array = new int[]{1,2,3,4,5};
        for (int a:array) {
            System.out.println(a);
        }
    }

//运行结果:1,2,3,4,5

✨跳出循环和结束循环

在循环过程中,如果想结束或者跳出循环可以使用break关键字或者continue关键字

 break:

  • break 在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)

continue:

  • continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

四,输入输出


✨使用Scanner类进行输入

首先需要先定义一个可以在控制台从键盘接受数据的Scanner对象(Scanner类的包名是 java.util.Scanner)

Scanner in = new Scanner(System.in); // 用于控制台从键盘读入数据

Scanner类中主要使用的是next( ) nextLine( )

🔸next( )

  • 一定要读取到有效字符后才可以结束输入。
  • 对输入有效字符之前遇到的空白,next()方法会自动将其去掉。
  • 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
  • next()不能得到带有空格的字符串。

代码示例:

import java.util.Scanner;
public class Test{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        String ch = input.next();
        System.out.println(ch);
    }
}

//输入:abc aaa 

运行结果: 

🔸nextLine()

  • 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
  • 可以获取到空白。

代码示例:

import java.util.Scanner;
public class Test{
    public static void main(String[] args){
        Scanner input = new Scanner(System.in);
        String ch = input.nextline();
        System.out.println(ch);
    }
}

//输入:abc aaa 

运算结果:

 其他类型整数的输入

import java.util.Scanner;
public class Test{
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);

        int n=input.nextInt();// 整数的输入

        char ch=input.next().charAt(0);// 字符的输入

        double a=input.nextDouble();// 浮点型的输入

        float y=input.nextFloat();
    }
}

✨输出:

基本语法:

System.out.println()

// println() 中传递任意数据类型,多个类型使用 “+” 拼接,输出内容后自带换行符。

System.out.print()

// print() 中任意数据类型,多个类型使用 “+” 拼接。
 
System.out.printf()

// 和c语言一样的格式化输出。

常用的格式化字符:

 代码示例:

 public static void main(String[] args) {
        int a = 10;
        System.out.println("abc"); // 输出一个字符串, 带换行

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

        System.out.printf("%d",a); // 格式化输出
    }

总结:

       通过上述,我们了解了在Java编程中,逻辑控制是一个基本方面,它使程序员能够根据某些条件做出决策。Java中有三种类型的逻辑控制结构,每种类型的逻辑控制结构都有不同的要求,并用于不同的场景。Java提供的逻辑控制结构,可用于做出决策和重复代码块。使用哪种结构取决于程序的具体要求和需要实现的逻辑类型。

                                    

   ✨由衷感谢您的阅读,写作是一项漫长而不易的艰辛过程,若能得到您的点赞、评论和关注,作者会由衷感到欣喜。

                                                                   

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值