Java数组重修,猜数小游戏改进和打印正三角形

数组重修,猜数小游戏

要求:从键盘输入一个数,判断数组是否包含此数,运用随机数

我们可能会这样写

import java.util.Random;
import java.util.Scanner;

import org.junit.Test;

/**
* 数组示例:从键盘输入一个数,判断数组是否包含此数
* @author fei
*/
public class GuessNum {

	@Test
	public void guessNum() {
		Random rand = new Random();// 产生随机数的工具,生成的是伪随机数

		int[] sysNums = new int[5];// 准备长度为5的数组
		int len = sysNums.length;// 保存数组的长度

		for (int i = 0; i < len; i++) {// for循环为数组元素赋值
			// 生成一个10以内的数并赋值给数组元素
			sysNums[i] = rand.nextInt(10);
		}

		System.out.println("请输入一个你认为数组中存在的数:(10以内)");
		Scanner input = new Scanner(System.in);// 接收用户的输入
		int userNum = input.nextInt();

		// 遍历数组,判断猜的数字是否存在于数组
		for (int temp : sysNums) {
			if (userNum == temp) {
				System.out.println("恭喜,猜对了!");
				break;
			} else {
				System.out.println("很遗憾,没猜对");
			}
		}
	}// guessNum

}

输出结果:
情况一:猜错

情况二:猜对了

我们看到,不管猜对,还是猜错,程序输出好多次提示信息,这不是我们想要的结果。

下面是方法改进后的代码

@Test
public void guessNumPlus() {
	Random rand = new Random();

	// 定义数组并循环随机赋值
	int[] sysNums = new int[5];
	int len = sysNums.length;
	for (int i = 0; i < len; i++) {
		sysNums[i] = rand.nextInt(5);
	}

	// 提示并接收玩家输入
	System.out.println("请输入一个你认为数组中存在的数:(10以内)");
	Scanner input = new Scanner(System.in);
	int userNum = input.nextInt();

	// 循环遍历判断数组是否包含玩家猜的数,并以isRight标记是否猜中
	boolean isRight = false;
	for (int temp : sysNums) {
		if (userNum == temp) {
			isRight = true;
			break;
		}
	}

	// 根据标记输出相应提示信息
	if (isRight) {
		System.out.println("恭喜,猜对了!");
	} else {
		System.out.println("很遗憾,没猜对");
	}
}// guessNumPlus

输出结果:
情况一:猜对

情况二:猜错

终于ok,一切正常,舒服了

当然,还有很多改进的地方,比如给几次机会,加上循环啥的

数组重修,打印三角形

import org.junit.Test;

/**
 * i数组示例:打印正三角形
 * @author fei
 */
public class PrintTriangle {

    @Test
    public void printTriangle() {
	    // 定义一个字符数组
	    char[] chars = { 'A', 'B', 'C', 'D', 'E', 'F', 'G' };
	    int len = chars.length;

    	    // 外循环控制行数
	    for (int i = 1; i <= len; i++) {
		    for (int j = i; j < len; j++) {
			    // 输出空格
			    System.out.print(" ");
		    }
		    for (int j = 1; j <= i * 2 - 1; j++) {
			    System.out.print(chars[i - 1]);
		    }
		    System.out.println();
	    }
    }

}

输出结果:

posted on 2019-05-08 13:36  行之间  阅读(234)  评论(0编辑  收藏  举报