Java - 如何在开关盒中存储数组
Posted
技术标签:
【中文标题】Java - 如何在开关盒中存储数组【英文标题】:Java -how can I store an array in switch case 【发布时间】:2022-01-10 03:34:54 【问题描述】:我需要构建首先获取二维数组然后打印它的代码。 为此,我构建了一个带有开关盒的菜单。
当用户单击 0 时,用户键入数组的大小(大小始终为 n*n),然后用户键入值。然后我需要创建一个使用此信息来构建 char 数组的函数。(值是 hex base 0-F)
当用户点击 1 时,代码需要打印相同的二维数组。 我很难理解如何从案例 0 中移动数组。
导入 java.util.Scanner;
公开课作业3
static Scanner reader = new Scanner (System.in);
public static void main(String[] args)
int checker=1;
int user_selction;
do
user_selction=Menu();
switch(user_selction)
case 0:
Menu_0(user_selction);
break;
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
checker=GoodBye(checker);
break;
default:
break;
while(checker==1);
public static int Menu ()
int menu_num;
System.out.println("~ Photo Analyzed ~");
System.out.println("0. Load Photo");
System.out.println("1. Print Photo");
System.out.println("2. Circle Check");
System.out.println("3. Random Check");
System.out.println("4. Exit");
System.out.println("Please select an option>");
menu_num=reader.nextInt();
if(menu_num>4||menu_num<0)
System.out.println("Invalid input");
return menu_num;
public static int GoodBye(int GB)
GB=0;
System.out.println("Goodbye!");
return GB;
public static int Menu_0 (int a)
int Ps;
System.out.println("Please insert the photo size>");
Ps=reader.nextInt();
if(Ps<0||Ps>12)
System.out.println("Invalid Photo Input!");
return a;
System.out.println("Please insert the photo value>");
String strPhoto;
do
strPhoto = reader.nextLine();
while(strPhoto.length() == 0);
if(strPhoto.length()!=Ps*Ps)
System.out.println("Invalid Photo Input!");
return a;
for(int i=0;i<Ps*Ps;i++)
if(strPhoto.charAt(i)<'0'||strPhoto.charAt(i)>'F')
System.out.println("Invalid Photo Input!");
return a;
return a;
【问题讨论】:
您的数组是否定义在 case 0 范围内? 我试图在 case 0 内定义数组,然后考虑制作一个制作数组的函数,也没有帮助我@SeyedMohammadAminAtyabi 编辑这篇文章并添加您的代码,以便我们提供更好的帮助。通常你应该在 switch 语句之外定义你的数组,这样你就可以在其他情况下访问。 @SeyedMohammadAminAtyabi 但如果用户想要更改数组,如果它在外面,他如何更改它?对不起,如果代码看起来很糟糕,我对编码很陌生。 您正在做一些事情,例如您声明的方式和 Scanner 类的实例。 【参考方案1】:这是一个例子
import java.util.Scanner;
public class Assignment3
static Scanner reader = new Scanner (System.in);
public static void main(String[] args)
int checker=1;
int user_selction;
char [][]array = null;
do
user_selction=Menu();
switch(user_selction)
case 0:
array = Menu_0();
break;
case 1:
print_array(array);
break;
case 2:
break;
case 3:
break;
case 4:
checker=GoodBye(checker);
break;
default:
break;
while(checker==1);
public static int Menu ()
int menu_num;
System.out.println("~ Photo Analyzed ~");
System.out.println("0. Load Photo");
System.out.println("1. Print Photo");
System.out.println("2. Circle Check");
System.out.println("3. Random Check");
System.out.println("4. Exit");
System.out.println("Please select an option>");
menu_num=reader.nextInt();
if(menu_num>4||menu_num<0)
System.out.println("Invalid input");
return menu_num;
public static int GoodBye(int GB)
GB=0;
System.out.println("Goodbye!");
return GB;
public static char[][] Menu_0 ()
int Ps;
System.out.println("Please insert the photo size>");
Ps=reader.nextInt();
if(Ps<0||Ps>12)
System.out.println("Invalid Photo Input!");
return null;
System.out.println("Please insert the photo value>");
char [][]array = new char[Ps][Ps];
for(int i=0;i<Ps;i++)
for (int j = 0 ; j < Ps ; j++)
char c = reader.next().charAt(0);
if(c<'0'||c>'F')
System.out.println("Invalid Photo Input!");
return null;
else
array[i][j] = c;
return array;
public static void print_array(char [][]array)
for (int i = 0 ; i < array[0].length ; i++)
for (int j = 0 ; j < array[0].length ; j++)
System.out.print(array[i][j] + " ");
System.out.println();
【讨论】:
哇,我不得不更改一些东西,因为当我尝试打印时它不起作用,但 null 帮助很大。谢谢!!!【参考方案2】:像这样使用扫描仪:
Scanner sc = new Scanner(System.in);
System.out.println("Select 1 to input array size or 2 to do sth");
int option = sc.nextInt();
switch(option)
case 1 :
Scanner sc = new Scanner(System.in);
System.out.println("Enter array size: ");
int size = sc.nextInt()
int[] array = new array[size*size];
break;
case 2 :
something;
break;
default:
System.out.println("No such option ");
break;
【讨论】:
您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center。以上是关于Java - 如何在开关盒中存储数组的主要内容,如果未能解决你的问题,请参考以下文章