java⼆维数组使⽤⼏个下标_Java⼆维数组以及多维数组的定
义及应⽤
⼀、⼆维数组以及多维数组
1、⼆维数组的定义:
在⼀维数组中定义每⼀个元素也是⼀个数组元素,这样的数组称为”⼆维数组“
多维数组就是在⼀维数组上再次定义⼆维数组或三位数组等。
⼀维数组定义int [] array={1,2,3}
//定义三个长度的⼆维数组,其数组的每⼀个元素是⼀个⼀维数组
int [][] arrays={{},{},{}};
或者
int [][] arrays=new int [3][2];//等号右边的左边[]中表⽰⼆维数组的长度,其中2可以省略,3不能省略
/
/注意:等号左边有⼏个[]就表⽰⼏维
//1、定义⼆维数组
int [][] array;
//定义时给⼆维数组赋值 3个长度的⼆维数组⾥⾯的⼀维数组的长度不⼀定相等
int [][] array2={{1,2,3},{4,5},{7,8}}
//定义时只指定⼤⼩,不给定初始值
int [][]array3=new int[3][];//等价{{},{},{}}
//array3[0][0]=1;//赋值时 空指针异常,因为⾥⾯的⼀维数组是空的
//定义⼀个3个长度的⼆维数组,⾥⾯的元素长度是2
int array4[][]=new int[3][2];
//给元素赋值
array4[0][0]=1;
//输出⼆维数组中的所有元素
for(int i=0;i
//System.out.println(array4[i]);
for(int j=0;j
System.out.println(array[i][j]);
}
}
⼆、⼆维数组的应⽤
1、定义5*5的矩阵,计算最⼤值最⼩值
public class Test{
public static void main(String[] args) {
//定义⼀个5*5的⼆维数组
int [][] array=new int[5][5];
//定义最⼤值,并初始化
int max=0;
//定义最⼩值,并初始化
int min=0;
//为⼆维数组中的每⼀个元素赋上⼀个0-100的整数值,并遍历输出⼆维数组for (int i = 0; i
for (int j = 0; j
array[i][j]=(int)(Math.random()*100);
System.out.print(array[i][j]+"\t");
}
System.out.println();//换⾏
}
//将数组中的第⼀个元素赋值给max
max =array[0][0];
for (int i = 0; i
for (int j = 0; j
//如果数组中元素⼤于max,则将元素赋值给max
if(array[i][j]>=max){
max=array[i][j];
}
}
}
//输出⼆维数组中的最⼤值
System.out.println("最⼤值为:"+max);
//将数组中的第⼀个元素赋值给min
min =array[0][0];
for (int i = 0; i
for (int j = 0; j
/
/如果元素⼩于min,则将元素赋值给min
if(array[i][j]<=min){
min=array[i][j];
}
}
}
//输出⼆维数组中的最⼩值
System.out.println("最⼩值为:"+min);
}
}
2、五⼦棋游戏
public class Test{
//定义⼀个字符串型20*20的⼆维数组
static String [][] qipan=new String[20][20];
public static void main(String[] args) {
System.out.println("------------------------------五⼦棋游戏------------------------------"); //初始化棋盘
for (int i = 0; i
for (int j = 0; j
qipan[i][j]="+";
}
}
printQipan();
System.out.println("游戏开始:");
Scanner sc=new Scanner(System.in);
while(true) {
System.out.println("请玩家(⿊棋)落⼦:");
System.out.print("请输⼊棋⼦的⾏数(1-20):");
int num1 = sc.nextInt();
System.out.print("请输⼊棋⼦的列数(1-20):");
int num2 = sc.nextInt();
if (num1 <= 0 || num1 > 20 || num2 <= 0 || num2 > 20 ) {
System.out.println("落⼦超出棋盘边界,请重新落⼦!"); continue;
} else {
if( qipan[num1 - 1][num2 - 1] != "+"){
System.out.println("该位置已有棋⼦,请重新落⼦!"); continue;
}else{
qipan[num1-1][num2-1]="?";
}
}
//⽩棋落⼦
int row=0;
int col=0;
// System.out.println("⽩棋思考中...");
while(true){
row=(int)(Math.random()*20);
col=(int)(Math.random()*20);
if(qipan[row][col]=="+"){
break;
}
}
qipan[row][col]="●";
//打印棋盘
printQipan();
//判断输赢
if(judge()){
System.out.println(s+"赢了");
break;
}
}
}
//打印棋盘
public static void printQipan(){
for (int i = 0; i
for (int j = 0; j
System.out.print(qipan[i][j]+"\t");
}
System.out.println();
}
}
//判断输赢的⽅法java定义一维数组并赋值
static String s="";
public static boolean judge(){
boolean flag=false;
for (int i = 0; i
for (int j = 0; j
if(qipan[i][j]=="?"||qipan[i][j]=="●"){
//判断横向
if(j<16&&
qipan[i][j]==qipan[i][j+1]
&&qipan[i][j]==qipan[i][j+2]
&&qipan[i][j]==qipan[i][j+3]
&&qipan[i][j]==qipan[i][j+4]){
s=qipan[i][j];
flag=true;
break;
}
//判断右斜下
else if(i<16&&j<16&&qipan[i][j]==qipan[i+1][j+1] &&qipan[i][j]==qipan[i+2][j+2]
&&qipan[i][j]==qipan[i+3][j+3]
&&qipan[i][j]==qipan[i+4][j+4]){
s=qipan[i][j];
flag=true;
break;
}
//判断纵向
else if(i<16&&qipan[i][j]==qipan[i+1][j]

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。