初心者ですが宜しくお願いします。
学校での課題ですが、こちらのコード以外に簡単なコードまたは正しいコードがあれば案を頂きたいです。
入力された整数に対して下記のように入力された整数の数だけ@を表示したいです。
整数4
@***
*@**
**@*
***@
制作中ですが、コードは下記です。
import java.util.Scanner; public class Question07 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("整数を入力"); int number = scanner.nextInt(); for (int i = 0; i < number; i++) { for (int j = 0; j < number; j++) { if(i == j) { System.out.print("@"); } else { System.out.print("*"); } } System.out.println(); } scanner.close(); } }
その提示のコードではどういう動作となるんでしょうか。
質問文は Markdown を適切に使って記述してください。
コードは ``` で囲んでコードブロックにしてください。
> 正しいコード
何をもって「正しい」と呼ぶのでしょうか?
このサイトを始めて利用するので、うまく利用できず申し訳ありません。
動作としましては、整数の4を入力すると上記概要にあります。@と*を交えた出力内容にしたいと言うことです。
休憩時間の合間に携帯での質問をさせて頂いており。ブラウザ上で結果を確認できるサイトが無かった為憶測のようなコードでもうしわけありません。
既存コードの動作に問題は無く、他の方法などを知りたいということなら、QA では無く意見交換を利用するのが良いと思います。
プログラムとしては最小になっていると思います。
動作上の問題よりも、インデントを適切に付けたり演算子前後の空白類を整えたりと、ソースコードの可読性に意識を向けたほうがよいのではないでしょうか。
それと、ソースコードは一部ではなく動作可能な完全な形で提示していただいたほうが好ましいです。
@jimbe
貴重なご意見ありがとう御座います。
携帯でもコンパイル可能なサイトを見つけました。確認したところ修正箇所が複数あり正しく修正しました。
他の方に意見を聞いたところif文の方が好まれることもあるそうなので3項演算子を変更しています。
貴重なお時間ありがとうございました。
>if文の方が好まれることもあるそうなので
好みと言ってしまえば否定は出来ませんが、 if と三項演算子では表現が違い、読み手に与える認識が異なります。
if では当然 if(i==j) が先に来ますので「処理が分かれる」ことが先に認識されるのに対し、三項演算子では System.out.print が先ですので「表示する」ことが先に認識されます。
コードを読む人に対して「処理が分かれる」ことと「表示する」ことのどちらをより伝えたいかで記述を選ぶという判断基準もあります。

回答2件
あなたの回答
tips
プレビュー