• 2020年9月29日Java学习日记


    四则运算

    (3)可定制数量,输入大的数量值,测试系统是否崩溃。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    package day02;
     
    import java.util.Random;
    import java.util.Scanner;
     
    public class Test {
        public static void main(String args[]) {
     
             
            Random rand = new Random();
            boolean[] bool = new boolean[101];
            String[] fuhao = new String[] { "+""-""*""/" };
     
            // variable initialization
            int first = 0;
            int second = 0;
            String fh = " ";
     
            int length = 0;
            Scanner scan = new Scanner(System.in);
            System.out.print("您想练习题目的个数为:");
            length=scan.nextInt();
             
            for (int i = 0; i <length ; i++) {
                do {
                    first = rand.nextInt(101);
                    second = rand.nextInt(101);
                    fh = fuhao[rand.nextInt(4)];
                while (bool[first] && bool[second]);
                bool[first] = true;
                bool[second] = true;
                System.out.println(i+1+"、"+first + fh + second + "=");
            }
     
        }
    }

    当输入100000后,系统崩溃。

    (4)定制操作数的个数

    package day02;
     
    import java.util.Random;
    import java.util.Scanner;
     
    public class Test {
     
        public static void main(String args[]) {
     
            Random rand = new Random();
            boolean[] bool = new boolean[101];
            String[] fuhao = new String[] { "+", "-", "*", "/" };
     
            int n = 0;
            int length = 0;
            @SuppressWarnings("resource")
            Scanner scan = new Scanner(System.in);
            System.out.print("您想练习题目的个数为:");
            length = scan.nextInt();
            System.out.print("操作数的个数为:");
            n = scan.nextInt();
     
            int[] Number = new int[n];
            String[] Fh = new String[n];
     
            for (int i = 0; i < length; i++) {
     
                for (int j = 0; j < n; j++) {
     
                    do {
                        Number[j] = rand.nextInt(101);
                        Fh[j] = String.valueOf(fuhao[rand.nextInt(4)]);
     
                    } while (bool[Number[j]]);
     
                    bool[Number[j]] = true;
     
                    if (j != n - 1) {
                        System.out.print(Number[j] + Fh[j]);
                    } else {
                        System.out.print(Number[j]);
                    }
                }
                System.out.println();
     
            }
     
        }
    }

    最初我将数组 Fh 定义为:String[] Fh = new String[n-1]; 结果出现了溢出现象 

    经过修改,改成了  String[] Fh = new String[n]; 运行成功

    其中,由于我并没有考虑最后一组数字与符号的问题,导致在随机生成的计算题后面出现符号。经过修改,加了一个判断语句,判断它是否为最后一组,得以正确输出。

    还有一个很大的收获是:我学习了如何给字符串数组中的元素赋值

    Fh[j] = String.valueOf(fuhao[rand.nextInt(4)]);
  • 相关阅读:
    centos7与centos6区别
    tomcat在win10系统中安装失败的问题,修改tomcat内存
    centos7关闭防火墙
    Centos7安装FastDFS教程
    Maven详解(四)------ 常用的Maven命令
    Linxu程序构建-Makefile
    版本控制工具-git
    Linux程序调试-常用调试技巧
    Linux工具-编写手册页&发行软件&RPM软件包
    Linux终端-对终端进行读写
  • 原文地址:https://www.cnblogs.com/9635741zly/p/14176440.html
Copyright © 2020-2023  润新知