java数组游戏_带你走进Java数组世界

跟C语言一样,数组在java中也是中重要的数据结构,在Java 语言中提供的数组跟C语言中的相同,但又有点小小的区别,我们小面就会讲到。你可以声明一个数组变量,如 num[100] 来代替直接声明 100 个独立变量 num有的子怒骂num0,num1,....,num99。

本教程将为大家介绍 Java 数组的声明、创建和初始化,并给出其对应的代码。

一、数组的声明和两种定义方式

1, 声明数组变量

首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法:

dataType[] arrayRefVar; // 首选的方法

datatype arryRefVar [ ] ;

dataType arrayRefVar[]; // 效果相同,但不是首选方法

1, 数组的定义:

1, 静态方式

dataType[] arrayRefVar = { };

例如:

int [ ] score = { 90,78,89,94,65};

String [ ] = {"jftr","jiuk","java"};

2, 动态方式

Java语言使用new操作符来创建数组,语法如下:

dataType[] arrayRefVar = new dataType [size];

例如:

int [ ] score = new int [5];

score[0] = 90;

score[1] = 78;

score[2] = 89;

score[3] = 95;

score[4] = 65;

上面的语法语句有两个功能:

一、使用 dataType[arraySize] 创建了一个数组。

二、把新创建的数组的引用赋值给变量 arrayRefVar。

需要注意的是,数组一旦被定义就无法修改数组的大小

3、数组的使用:

接下来我们来个数组试试Java中的数组。

public class TestArray {

public static void main(String[] args) {

// 数组大小

int size = 10;

// 定义数组

double[] myArry = new double[size];

myArry[0] = 5.6;

myArry[1] = 4.5;

myArry[2] = 3.3;

myArry[3] = 13.2;

myArry[4] = 4.0;

myArry[5] = 34.33;

myList[6] = 34.0;

myList[7] = 45.45;

myList[8] = 99.993;

myList[9] = 11123;

// 计算所有元素的总和

double total = 0;

for (int i = 0; i < size; i++) {

total += myArry[i];

}

System.out.println("总和为: " + total);

}

}

下面的图片描绘了数组 myArry。这里 myArry数组里有 10 个 double 元素,它的下标从 0 到 9。

a557d9cd979b

二、遍历数组的三种方式

假如有数组int [ ]count = {1,2,3,4,5,6,7,8,9,1};

则数组的输出方式有如下三种:

1, 数组输出方式1

传统的for循环方式

for (int i = 0; i < 10; i++){

System.out.print(count[i]+" ");

}

System.out.println();

2, 数组输出方式2

for each 循环

for (int temp: count){

System.out.print(temp + " ");

}

System.out.println();

3, 数组输出方式3

利用Array类中的toString方法调用Array.toString(a),返回一个包含数组元素的字符串,这些元素被放置在括号内,并用逗号分开

System.out.println(Arrays.toString(count));

}

说明:System.out.println(count);这样是不行的,这样打印是的是数组的首地址。

前面我们有C语言写了一个数字游戏,今天带领大家有java来感受一下。

首先来说一下这个游戏要求:

1, 随机产生4个不相同的数字

2, 玩家开始输入四个数字

3, 如果位置正确且数字正确用A输出

4, 如果数字正确位置不正确用B输出B

如:随机产生的四个数字为: 1 2 3 4

玩家输入的数字为: 1 2 4 6

则提示:2A1B

java代码如下:

class GuessNumber{

public static void main(String[] args){

//保存原始数字

int[] org = new int[4];

//保存用户猜测的数字

int[] guess = new int[4];

//产生4个随机数

Random random = new Random();

for (int i = 0; i < 4; i++){

//产生一个随机数

int temp = random.nextInt(10);

//判断是否存在

boolean result = contains(org, temp);

if (result){

//确保i对应的位置能够得到一个不重复的数字

i--;

}else{

org[i] = temp;

}

}

//排序

Arrays.sort(org);

System.out.println(Arrays.toString(org));

//定义一个扫描仪对象Scanner

Scanner scanner = new Scanner(System.in);

//开始游戏

while(true){

int countA = 0;

int countB = 0;

System.out.print("请输入猜测的数字:");

for (int i = 0; i < 4;i++){

guess[i] = scanner.nextInt();

}

//判断用户输入

//1.判断是否存在

for (int i = 0; i < 4; i++) {

boolean result =contains(guess, org[i]);

if(result == true){

//数字存在

//判断位置是否相同

int index = indexOf(guess, org[i]);

if (index == i){

//数字和位置都相同

countA++;

} else{

countB++;

}

}

}

if (countA == 4){

System.out.println("恭喜全对!");

break;

}else{

System.out.println(countA+"A"+countB+"B");

}

}

}

/**

* 在一个数组里面查找某个对象的索引值

* @param val 数组

* @param obj 查找的对象

* @return 索引值

*/

public static int indexOf(int[] val, int obj){

for (int i = 0; i < val.length; i++){

if (val[i] == obj){

return i;

}

}

return -1;

}

//自己写一个方法实现 判断某个数组里面是否包含某个值

public static boolean contains(int[] val, int obj){

for (int i = 0; i < val.length; i++){

if (val[i] == obj){

//重复了

return true;

}

}

return false;

}

}

运行结果如下:

a557d9cd979b

寄语读者

从C到java是有一个过度阶段的,一个面向过程,一个面向对象,是有区别的,现在还没找到学习java的同学,希望你们不要焦急,只要你在一步一个脚印地走,总会找到学习的方法,学好java 的,祝所有读者每天都能快乐地学习!好了,小编今天的分享就到此了,我们明天见!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值