Java实例 Part3:流程控制



Java实例 Part3:流程控制

  这一部分流程控制语句包括:顺序结构、选择结构、循环结构、跳转语句。

在这里插入图片描述

具体区别待补充。。。



Example01:判断某一年是否为闰年

**要求:**用户输入年份,并判断输入的年份是否为闰年。
运行结果:
在这里插入图片描述

实现代码:

import java.util.Scanner;

public class Example01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = scanner.nextInt();
        if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0){
            System.out.println(year+"年是闰年!");
        }else{
            System.out.println(year+"年不是闰年!");
        }
    }
}

要点: 判断一个年份是否闰年,要满足两个条件:一是能被4整除但不能被100整除,另一个是能被400整除。

year % 4 == 0 && year % 100 != 0 || year % 400 == 0

实现代码:

import java.util.Scanner;

public class Example02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String username = scanner.nextLine();

        System.out.println("请输入密码:");
        String password = scanner.nextLine();

        if (!username.equals("admin")){
            System.out.println("用户名不正确!");
        } else if(!password.equals("123")){
            System.out.println("密码不正确!");
        }else {
            System.out.println("恭喜你,登录信息通过验证!");
        }
    }
}

要点: 字符串属于对象而非基本数据类型,不能使用“= =”来判断两个字符串是否相等,所以要通过equal()来判断两个字符串内容是否相同。使用“= =”判断的是两个字符串对象的内存地址,而非字符串内容。

  • 语法:
        if(表达式){
          若干语句;
        }else If(表达式){
          若干语句;
        }else{
          若干语句;
        }

Example03:判断用户输入月份的季节

运行结果:
在这里插入图片描述
实现代码:

import java.util.Scanner;

public class Example03 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入月份:");
        int month = scanner.nextInt();
        switch (month){
            case 12:
            case 1:
            case 2:
                System.out.println(month+"月是冬季!");
                break;

            case 3:
            case 4:
            case 5:
                System.out.println(month+"月是春季!");
                break;

            case 6:
            case 7:
            case 8:
                System.out.println(month+"月是夏季!");
                break;

            case 9:
            case 10:
            case 11:
                System.out.println(month+"月是秋季!");
                break;
                
            default:
                System.out.println("没有这个月份哦!!!");
        }
    }
}

要点: 该实例用到的是switch选择结构。

  • 语法:
       switch(表达式){
         case 常量表达式1:语句序列1
            [break;]
         case 常量表达式2:语句序列2
            [break;]
         …
         case 常量表达式n:语句序列n
            [break;]
         default:语句序列n+1
            [break;]
       }

Example04:使用while循环语句与自增运算符循环遍历数组

运行结果:
在这里插入图片描述
实现代码:

public class Example04 {
    public static void main(String[] args) {
        //创建数组
        String[] strings = {"Java","C","C++","Pathon","PHP"};

        int index = 0;   //创建索引变量
        System.out.println("编程语言有:");
        while (index < strings.length){    //遍历数组
            System.out.println(strings[index++]);   //自增索引值
        }
    }
}

要点: 注意自增自减前置和后置的区别。

  • 语法:
       while(条件表达式){
          语句表达式;
       }

Example05:使用for循环输出杨辉三角

要求: 输出10行内容的杨辉三角。利用二维数组,其中杨辉三角的两侧值都为1,其他位置的数值是其正上方的数值与左上角数值之和。
运行结果:
在这里插入图片描述
实现代码:

public class Example05 {
    public static void main(String[] args) {
        int triangle[][] = new int[10][];
        //遍历数组的第一层
        for (int i = 0;i<triangle.length;i++){
            //初始化第二层数组的大小
            triangle[i] = new int[i+1];
            for (int j = 0;j<=i;j++){
                if (i==0||j==0||i==j){
                    triangle[i][j] = 1;
                }else {
                    triangle[i][j] = triangle[i-1][j] + triangle[i-1][j-1];
                }
                System.out.print(triangle[i][j]+"\t");
            }
            System.out.println();
        }
    }
}

要点: 在二维数组中,第一个下标值表示行数,第二个下标值表示的是列数。两侧数值为0,其余数值通过计算:
      triangle[i][j] = triangle[i-1][j] + triangle[i-1][j-1];

猜你喜欢

转载自blog.csdn.net/qq_39394264/article/details/83422131