美文网首页技术干货程序员
For循环以及If-elseIf-else知识-1

For循环以及If-elseIf-else知识-1

作者: Mr_SuX | 来源:发表于2016-12-03 15:10 被阅读0次

    条件判断与循环:

    --求n的阶层

    • 主要使用知识点:if-else和for循环
    public void getN() {
            Scanner sc = new Scanner(System.in);
            // 判断输入的是否是整数
            if (sc.hasNextInt()) {
                System.out.println("请输入一个数:");
                //获取用户输入的值
                int n = sc.nextInt();
                double sum = 1;
                if (n > 0) {
                    for (int i = 1; i <= n; i++) {
                        sum *= i;
                    }
                } else {
                    System.out.println("负数没有阶层!");
                }
                System.out.println(sum);
            }
            sc.close();
        }
    

    -- 猜数字游戏

    • 主要使用知识点:if-elseif-else和while()循环以及部分swing的相关知识点
    public void numRiddle() {
            int num = 0; // 输入值
            int min = 0; // 最小值
            int max = 100; // 最大值
            int count = 1; // 猜的次数
            int answer = (int) (Math.random() * 100 + 1); // 随机数
            try {
                String str = JOptionPane.showInputDialog("我给了你一个1~100之间的整数,你猜猜是多少呢?");
                // 将String类型转换为整形
                num = Integer.parseInt(str);
                while (num != answer) {
                    count++;
                    if (num < answer) {
                        min = num;
                        // 输入弹出框
                        str = JOptionPane.showInputDialog("猜错了,在" + min + "-" + max + "之间");
                        num = Integer.parseInt(str);
                    } else if (num > answer) {
                        max = num;
                        str = JOptionPane.showInputDialog("猜错了,在" + min + "-" + max + "之间");
                        num = Integer.parseInt(str);
                    }
                }
                JOptionPane.showMessageDialog(null, "恭喜你答对了,你一共猜了" + count + "次");
            } catch (Exception e) {
                // 退出系统
                System.exit(0);
            }
        }
    

    -- 最大公约数和最小公倍数

    • 主要是使用知识点:for循环和if语句
    public void exNum() {
            Scanner sc = new Scanner(System.in);
            System.out.print("请输入两个数:");
            int num1 = sc.nextInt();
            int num2 = sc.nextInt();
            int max = 0;// 最大公约数
            int min = 0;// 最小公倍数
            // 获取最大公约数
            for (int i = 1; i < (num1 < num2 ? num2 : num1); i++) {
                if (num1 % i == 0 && num2 % i == 0) {
                    max = i;
                }
            }
            // 最小公倍数(两数相乘,除以最大公约数)
            min = (num1 * num2) / max;
            System.out.println("最大公约数:" + max + ";最小公倍数:" + min);
            sc.close();
        }
    

    -- Craps赌博游戏:两颗色子

    • 主要是使用知识点:if-elseif-elseif-else和do-while
    • 该题存在嵌套循环和嵌套条件判断
     public void game() {
            int gameMoney = 1000; // 玩家初始金额
            int onePoints = 0; // 第一次的点数
            int points1 = 0; // 第一个色子的点数
            int points2 = 0; // 第二个色子的点数
            int points = 0; // 两个色子点数的和
            int count = 0; // 甩色子的次数
            boolean flag = false;
            Scanner sc = new Scanner(System.in);
            do {
                count++;
                System.out.println("你的总资产:" + gameMoney);
                int bet = 0;
                do {
                    System.out.println("请下注:");
                    bet = sc.nextInt();
                } while (bet > 0 && bet > gameMoney);
                points1 = (int) (Math.random() * 6 + 1); // 第一个色子
                points2 = (int) (Math.random() * 6 + 1); // 第二个色子
                onePoints = points1 + points2;
                if (onePoints == 7 || onePoints == 11) {
                    gameMoney += bet;
                    System.out.println("恭喜你胜出了!当前点数是:" + onePoints);
                } else if (onePoints == 3 || onePoints == 12 || onePoints == 2) {
                    gameMoney -= bet;
                    System.out.println("不好意思你输了,回家卖房吧!当前点数是:" + points);
                } else {
                    flag = true;
                    System.out.println("该局不输不赢,游戏继续!当前点数是:" + points);
                    while (flag) {
                        points1 = (int) (Math.random() * 6 + 1); // 第一个色子
                        points2 = (int) (Math.random() * 6 + 1); // 第二个色子
                        points = points1 + points2;
                        if (points == 7) {
                            gameMoney -= bet;
                            flag = false;
                            System.out.println("不好意思你输了,回家卖房吧!当前点数是:" + points);
                        } else if (points == onePoints) {
                            gameMoney += bet;
                            flag = false;
                            System.out.println("恭喜你胜出了!当前点数是:" + points);
                        } else {
                            System.out.println("该局不输不赢,游戏继续!当前点数是:" + points);
                        }
                    }
                }
            } while (gameMoney > 0);
            System.out.println("游戏结束!");
            System.out.println("你一共甩了" + count + "次");
            sc.close();
        }
    

    -- 求1-100之间的素数

    • 主要使用知识点:
      1.for循环、if条件判断、break跳出本次循环、return返回以及Math.sqrt()求根号方法
      2.方法调用
    // 求1-100之间的素数
        public static void suShu() {
            for (int i = 1; i < 100; i++) {
                // 调用tongSuShu(),获取返回的boolean类型的值
                boolean flag = tongSuShu(i);
                if (flag) {
                    System.out.print(i + ",");
                }
            }
        }
        public static boolean tongSuShu(int i) {
            boolean flag = true;
            for (int j = 2; j <= Math.sqrt(i); j++) {
                if (i % j == 0) {
                    flag = false;
                    // 跳出本次循环
                    break;
                }
            }
            //返回布尔类型的值
            return flag;
        }
    

    -- 九九乘法表

    • 主要使用知识点:
     public void multiplicationTable() {
            for (int i = 1; i <= 9; i++) {
                for (int j = 1; j <= i; j++) {
                    // 格式化输出
                    System.out.printf("%d*%d=%d\t", j, i, j * i);
                }
                System.out.println("");
            }
        }
    

    相关文章

      网友评论

        本文标题:For循环以及If-elseIf-else知识-1

        本文链接:https://www.haomeiwen.com/subject/rbrcmttx.html