사용자가 5 자 (S, M, A, R 또는 T) 중 하나를 선택하고 5x5 2 차원 배열에 삽입해야하는 작은 게임에서 작업 중입니다. 사용자가 유효하지 않은 숫자 또는 문자를 입력하면 프로그램은 유효하지 않은 문자이고 삽입하지 않는다고 말합니다. 이것은 올바른 문자를 입력해도 여전히 유효하지 않은 문자로 표시되는 문자를 제외한 모든 문자와 함께 작동합니다.배열의 고유 한 문자 집합
import java.util.Scanner;
class program{
public static void main(String[] args){
char[][] table = new char[5][5];
table[0][0] = 'S';
table[0][1] = 'M';
table[0][2] = 'A';
table[0][3] = 'R';
table[0][4] = 'T';
table[1][1] = 'T';
table[1][2] = 'S';
table[1][3] = 'M';
table[2][2] = 'R';
table[2][4] = 'S';
table[3][1] = 'S';
table[3][2] = 'M';
table[4][2] = 'T';
table[4][3] = 'S';
int rows = 5;
int columns = 5;
for(int k = 0; k>=0; k++){
for(int i = 0; i < rows; i++){
for(int j = 0; j < columns; j++){
System.out.print(table[i][j] + " ");
}
System.out.println();
}
System.out.println("Enter a row (1-5): ");
Scanner scRow = new Scanner(System.in);
int m = scRow.nextInt();
System.out.println("Enter a column (1-5): ");
Scanner scCol = new Scanner(System.in);
int n = scCol.nextInt();
System.out.println("Enter a letter (S, M, A, R or T): ");
Scanner scChar = new Scanner(System.in);
char c = scChar.next().charAt(0);
if (m < 1 || m > 5){
System.out.println("Invalid: Enter a valid row. ");
}
if (n < 1 || n > 5){
System.out.println("Invalid: Enter a valid column. ");
}
if (c != 'S' || c != 'M' || c != 'A' || c != 'R' || c != 'T'){
System.out.println("Invalid: Enter a valid character. ");
}
table[(m-1)][(n-1)] = c;
}
}
}
나는 내 if 문 함께 할 수있는 뭔가가 실현,하지만 난 의도 한 결과를 얻기 위해에 if 문을 변경해야하는지 모르는입니다.
는Example output:
S M A R T
T S M
R S
S M
T S
Enter a row (1-5): **3**
Enter a column (1-5): **2**
Enter a letter (S, M, A, R or T): **A**
Invalid: Enter a valid character.
또 다른 문제는 사람이 사용자가 완성 된 2 차원 배열을 취득하고 축하, 당신은 그것을 가지고 말한다 곳 저 끝 문을 만드는 도울 수 있다면. 이렇게하기 위해서는 사용자는 S M A R과 T를 어떤 방향 으로든 5 문자로 정렬해야합니다.
시간을내어 읽어 주셔서 감사합니다.
'사용자가 2 차원 배열을 완성하고 축하한다고 말하는 최종 문장 만들기. 알았어. '사용자가 유효한 문자를 입력 한 횟수를 계산할 수는 없습니까? –