我有这个代码实际上有效!但是它不是例外安全(如果我写任何字符,会崩溃),所以我试图让它变得更好。
正如你在那里的代码中看到的那样,我正在初始化变量fila和columna,询问有多少行(filas)和列(columnas)将要有矩阵,接下来,我使用the初始化矩阵前两个变量。
通过使用这种方法,我不能使用Try& Catch,但我不知道如何用用户输入初始化矩阵,并能够在我的其他方法中使用这些变量。
工作代码
import javax.swing.JOptionPane;
public class test {
int i = 0;
int j = 0;
int fila = Integer.parseInt(JOptionPane.showInputDialog(null, "Cuántas filas?", "Iniciando", JOptionPane.QUESTION_MESSAGE));
int columna = Integer.parseInt(JOptionPane.showInputDialog(null, "Cuántas columnas?", "Iniciando", JOptionPane.QUESTION_MESSAGE));
int [][] matrix = new int[fila][columna];
int valorCentral = columna/2;
int valorDiagonal = 0;
boolean error = false;
StringBuffer elementos = new StringBuffer();
StringBuffer elementosNullificados = new StringBuffer();
StringBuffer elementosEsquineros = new StringBuffer();
StringBuffer elementoUnoCentrado = new StringBuffer();
StringBuffer elementoUnoEnDiagonal = new StringBuffer();
public static void main(String[] args) {
test test = new test();
test.pideDatos();;
test.llenado();
test.nullificador();
}
public void pideDatos(){
}
public void llenado()
{
for (int i = 0; i < fila; i++) // Llenado de la matriz
{
for (int j = 0; j < columna; j++)
{
matrix[i][j] = Integer.parseInt(JOptionPane.showInputDialog(null, "Fila [" + (i+1) + "]: Columna [" + (j+1) + "]", "Iniciando", JOptionPane.QUESTION_MESSAGE));
elementos.append("["+matrix[i][j]+"] "); // Agrega cada fila de la matriz a value.
if(j == columna-1) // Cuando se llegue a la última columna se le agrega un \n
{
elementos.append("\n ");
}
}
}
elementos.toString(); // Convierte a String los elementos en value
JOptionPane.showMessageDialog(null, "Elementos de la matriz "+fila+"x"+columna+":\n\n "+elementos, "Elementos", JOptionPane.INFORMATION_MESSAGE, null);
}
public void nullificador(){
for (int i = 0; i < fila; i++) // Llenado de la matriz
{
for (int j = 0; j < columna; j++)
{
matrix[i][j] = 0;
elementosNullificados.append("["+matrix[i][j]+"] "); // Agrega cada fila de la matriz a value.
if(j == columna-1) // Cuando se llegue a la última columna se le agrega un \n
{
elementosNullificados.append("\n ");
}
}
}
elementosNullificados.toString(); // Convierte a String los elementos en value
JOptionPane.showMessageDialog(null, "Elementos nullificados de la matriz "+fila+"x"+columna+":\n\n "+elementosNullificados, "Elementos", JOptionPane.INFORMATION_MESSAGE, null);
}
到目前为止,我尝试过在方法中使用矩阵,但是如何在其他方法中使用这些变量呢?
import javax.swing.JOptionPane;
public class test {
int i = 0;
int j = 0;
boolean error = false;
StringBuffer elementos = new StringBuffer();
StringBuffer elementosNullificados = new StringBuffer();
StringBuffer elementosEsquineros = new StringBuffer();
StringBuffer elementoUnoCentrado = new StringBuffer();
StringBuffer elementoUnoEnDiagonal = new StringBuffer();
public static void main(String[] args) {
test test = new test();
test.pideDatos();;
test.llenado();
test.nullificador();
}
public void pideDatos(){
int fila = Integer.parseInt(JOptionPane.showInputDialog(null, "Cuántas filas?", "Iniciando", JOptionPane.QUESTION_MESSAGE));
int columna = Integer.parseInt(JOptionPane.showInputDialog(null, "Cuántas columnas?", "Iniciando", JOptionPane.QUESTION_MESSAGE));
int [][] matrix = new int[fila][columna];
int valorCentral = columna/2;
int valorDiagonal = 0;
}
public void llenado()
{
for (int i = 0; i < fila; i++) // Llenado de la matriz
{
for (int j = 0; j < columna; j++)
{
matrix[i][j] = Integer.parseInt(JOptionPane.showInputDialog(null, "Fila [" + (i+1) + "]: Columna [" + (j+1) + "]", "Iniciando", JOptionPane.QUESTION_MESSAGE));
elementos.append("["+matrix[i][j]+"] "); // Agrega cada fila de la matriz a value.
if(j == columna-1) // Cuando se llegue a la última columna se le agrega un \n
{
elementos.append("\n ");
}
}
}
elementos.toString(); // Convierte a String los elementos en value
JOptionPane.showMessageDialog(null, "Elementos de la matriz "+fila+"x"+columna+":\n\n "+elementos, "Elementos", JOptionPane.INFORMATION_MESSAGE, null);
}
public void nullificador(){
for (int i = 0; i < fila; i++) // Llenado de la matriz
{
for (int j = 0; j < columna; j++)
{
matrix[i][j] = 0;
elementosNullificados.append("["+matrix[i][j]+"] "); // Agrega cada fila de la matriz a value.
if(j == columna-1) // Cuando se llegue a la última columna se le agrega un \n
{
elementosNullificados.append("\n ");
}
}
}
elementosNullificados.toString(); // Convierte a String los elementos en value
JOptionPane.showMessageDialog(null, "Elementos nullificados de la matriz "+fila+"x"+columna+":\n\n "+elementosNullificados, "Elementos", JOptionPane.INFORMATION_MESSAGE, null);
}
答案 0 :(得分:1)
您可以定义一个空数组,然后在稍后的函数中初始化它,这将允许其他方法获取初始化它的方法之外的信息。
public class test {
{
private int[][] matrix;
public void pideDatos() {
int fila = Integer.parseInt(JOptionPane.showInputDialog(null, "Cuántas filas?", "Iniciando", JOptionPane.QUESTION_MESSAGE));
int columna = Integer.parseInt(JOptionPane.showInputDialog(null, "Cuántas columnas?", "Iniciando", JOptionPane.QUESTION_MESSAGE));
matrix = new int[fila][columna];
}
}
给那个破解