欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java 基础经典案例

程序员文章站 2022-06-19 21:22:47
...

Java 基础经典案例

适合刚开始学习Java的初学者。
一些简单的小案例。

1.实现金字塔效果

Java 基础经典案例


import java.util.Scanner;

//  金字塔  案例
// 从键盘录入 金字塔层数   选择正金字塔或倒金字塔
public class Pyramid {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入金字塔层数:");
        int count = scanner.nextInt();
        System.out.print("正金字塔 1,倒金字塔 2");
        int ch = scanner.nextInt();
        switch (ch){
            case 1:
                function_1(count);
                break;
            case 2:
                function_2(count);
                break;
            default:
                System.out.println("输入有误");
                break;
        }
        scanner.close();
    }

    public static void function_1(int count){
        for (int i = 0; i < count; i++){
            for (int j = count-i-1; j > 0;j--){
                System.out.print(" ");
            }
            for (int star = 0; star < (i * 2 + 1); star++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
    public static void function_2(int count){
        for (int i = 0; i < count; i++){
            for (int j = 0; j < i; j++){
                System.out.print(" ");
            }
            for (int star = 0;star < (2 *(count - i ) - 1); star++){
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

2. 显示9 9 乘法表

Java 基础经典案例


/***
 *  99乘法表
 */
public class Table99 {
    public static void main(String[] args) {
        for (int row = 1; row < 10 ;row++){
            for (int column = 1; column <= row; column++){
                System.out.print(column + "*" + row + "=" + row*column+"\t");
            }
            System.out.println();
        }

       //  // 倒 99乘法表
       // for (int i = 9; i >= 1; i--){
       //     for (int j = 1;j<=i;j++){
       //         System.out.print(j+"*"+i+"="+i*j+"\t");
       //     }
       //     System.out.println();
       // }
       //

    }
}

3. 绘画棋盘

Java 基础经典案例



import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JLabel;

/**
 *  用窗体展现国际象棋的棋盘
 */
public class QiPan {

    public static void main(String[] args) {
        JFrame frame = new JFrame("国际象棋");
        frame.setSize(415, 435);
        // 假设棋盘为20*20
        for (int i = 0; i < 20; i++) {
            for (int j = 0; j < 20; j++) {
                JLabel label = new JLabel();
                label.setSize(20, 20);
                label.setBackground(((i + j) % 2 == 0) ? Color.BLACK
                        : Color.white);
                label.setLocation(20 * i, 20 * j);
                // 设置不透明,要不然不会显示
                label.setOpaque(true);
                frame.add(label);
            }
        }
        // 窗体居中显示
        frame.setLocationRelativeTo(null);
        // 当窗口关闭程序结束
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        // 展示棋盘
        frame.setVisible(true);
    }
}


4. 存钱


/**
 *需求:小芳的妈妈每天给她2.5元钱,她都会存起来,但是,
 * 每当这一天是存钱的第5天或者5的倍数的话,她都会花去6元钱,
 * 请问,经过多少天,小芳才可以存到100元钱
 */
public class CunQian {
    public static void main(String[] args) {
        //每天给2.5
        double dayMoney = 2.5d;
        //存起来
        double daySum = 0;
        //存了几天
        int dayCount = 1;
        //存多久才能到100元
        double result = 100;

        while (true){
            // 每天开始存钱
            daySum += dayMoney;

            //超过100 就推出循环
            if (daySum >= result){
                System.out.println("共用了"+dayCount+"天存够100元。");
                break;
            }

            // 如果是5 的倍数的天数花去6元
            if (dayCount % 5 == 0){
                daySum -= 6;
                System.out.println("第"+dayCount+"天花去6元");
            }
            dayCount++;
        }
    }
}

5. 水仙花数



/**
 *   水仙花
 *   如果一个数的每位数的立方和等于它本身,那么这个数就是水仙花数
 *   153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153
 */
public class Flower {
    public static void main(String[] args) {
        int dataCount=0;
        for (int i = 100; i < 9999; i++){
            int ge = i % 10;
            int shi = i / 10 % 10;
            int bai = i /100;

            if (ge*ge*ge+shi*shi*shi+bai*bai*bai == i){
                dataCount++;
                System.out.println(dataCount+"***水仙花数"+i);
            }
        }
    }
}

6. 阶乘

输入一个数 求它的阶乘

import java.util.Scanner;

/**
 * 需求:求5的阶乘。
 */
public class For_JieCheng {
    public static void main(String[] args) {
        int jc = 1;

        System.out.print("请输入要求几的阶乘:");
        Scanner scanner = new Scanner(System.in);
        int j = scanner.nextInt();

        for (int i = 1; i <= j;i++){
            jc *= i;
        }
        System.out.println("5的阶乘:"+jc);
    }
}

7. 菱形

Java 基础经典案例


public class lingXing {
    public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {// 控制行数
            for (int j = 1; j <= 10 - i; j++) {// 控制空格
                System.out.print(" ");
            }
            for (int z = 1; z <= 2 * i - 1; z++) {// 控制*
                if (z == 1 || z == 2 * i - 1) {// 打印第一个*和最后一个*,其余的输出空格
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }

        for (int i = 10; i > 0; i--) {
            for (int j = 1; j <= 10 - i; j++) {
                System.out.print(" ");
            }
            for (int k = 1; k <= 2 * i - 1; k++) {
                if (k == 1 || k == 2 * i - 1) {
                    System.out.print("*");
                } else {
                    System.out.print(" ");
                }
            }
            System.out.println();
        }
    }
}

8. 素数

/**
 *  求素数   不能被2 整除的叫素数
 */
public class SuShu {
    public static void main(String[] args) {
        int count = 0;
        for (int i = 100;i < 200; i++){
            if (i % 2 == 0){
                continue;
            }else {
                System.out.println(i+"是素数");
            }
            count++;
        }

        System.out.println("一共有"+count+"个素数。");
    }
}

9. while循环


/**
 * 我国最高山峰是珠穆朗玛峰:8848m,我现在有一张足够大的纸张,厚度为:0.01m。
 * 请问,我折叠多少次,就可以保证厚度不低于珠穆朗玛峰的高度?
 */
public class WhileDemo {
    public static void main(String[] args) {
        //定义统计变量,要折叠几次
        int count = 0;
        //定义初始厚度和总高度,把0.01变成1
        double start = 0.1d;
        int end = 8844430;

        while (start < end ){
            // 每折叠一次就累加一次
            count++;

            //每折叠一次 厚度 * 2
            start *= 2;

            System.out.println("第:"+count+"折叠,厚度:"+start);
        }

        System.out.println("一共折叠:"+ count+"次");
    }
}