• 2020.9.30收获


    四则运算

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

    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)]);
    
  • 相关阅读:
    SQL中with(nolock)作用说明
    GridView应用随笔
    Repeater和Gridview前台显示行号的方法
    JQuery实现Ajax跨域访问--Jsonp原理
    Windows 2012 R2设置同一用户同时多点远程系统
    MySql项目中使用的小窍门
    Extjs关于combobox的二三事
    extjs 验证随手记录
    Extjs关于grid 行变色
    关于在ASP.NET MVC 中使用EF的Code First的方式来读取数据库时的Validation failed for one or more entities. See 'EntityValidationErrors' property for more details.
  • 原文地址:https://www.cnblogs.com/ltw222/p/13759648.html
Copyright © 2020-2023  润新知