この宿題の割り当てに問題があり、サポートが必要です。私は解決策から学びたいので、解決策だけを望んでいません。
ループを使用してレターピラミッドを実行しています。これらのFORループを組み合わせて、指示どおりに機能させる方法がわからないようです。
ユーザーは文字(またはエラーを与える他の文字)を入力する必要があり、プログラムは文字を大文字に変換します(まだ入力されていない場合)。大文字に変換した後、ループを使用して、文字「A」からユーザーが入力したものに移動し、再び「A」に戻ります。例を以下に示します。
思いついたコードを添付しましたが、プログラムの出力は以下のようになりますが、行はスペースになっているはずです。間隔を空けるために追加しました。
1文字を入力してください(ピラミッドを表示するにはアルファベットを入力してください):E
____A
___ABA
__ABCBA
_ABCDCBA
ABCDEDCBA
私の出力は単純にこれです:
Please enter a single letter:
f
ABCDEFEDCBA
コードは次のとおりです。
import java.util.*; // For using Scanner class for input
public class LetterPyramid {
public static void main(String[] args) {
Scanner key = new Scanner(System.in);
System.out.println("Please enter a single letter:");
char input = key.next().charAt(0);
input = Character.toUpperCase(input);
if (!(Character.isLetter(input))) {
System.out.println("Error: Invalid letter: " + input);
} else {
for (int i = input; i < 'Z'; i++) {
System.out.print(" ");
}
}
for (char y = 'A'; y < input; y++) {
System.out.print(y);
if (y == input) {
System.out.println(y);
}
}
for (char x = input; x >= 'A'; x--) {
System.out.print(x);
}
System.out.println();
}
}