質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

1043閲覧

入力した整数の数アスタリスクを表示

mesii

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2023/02/07 03:30

編集2023/02/07 11:07

初心者ですが宜しくお願いします。
学校での課題ですが、こちらのコード以外に簡単なコードまたは正しいコードがあれば案を頂きたいです。

入力された整数に対して下記のように入力された整数の数だけ@を表示したいです。
整数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(); } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2023/02/07 03:34

その提示のコードではどういう動作となるんでしょうか。
arcxor

2023/02/07 03:34

質問文は Markdown を適切に使って記述してください。 コードは ``` で囲んでコードブロックにしてください。
maisumakun

2023/02/07 03:53

> 正しいコード 何をもって「正しい」と呼ぶのでしょうか?
mesii

2023/02/07 04:58

このサイトを始めて利用するので、うまく利用できず申し訳ありません。 動作としましては、整数の4を入力すると上記概要にあります。@と*を交えた出力内容にしたいと言うことです。 休憩時間の合間に携帯での質問をさせて頂いており。ブラウザ上で結果を確認できるサイトが無かった為憶測のようなコードでもうしわけありません。
jimbe

2023/02/07 07:40 編集

既存コードの動作に問題は無く、他の方法などを知りたいということなら、QA では無く意見交換を利用するのが良いと思います。 プログラムとしては最小になっていると思います。
arcxor

2023/02/07 07:08

動作上の問題よりも、インデントを適切に付けたり演算子前後の空白類を整えたりと、ソースコードの可読性に意識を向けたほうがよいのではないでしょうか。 それと、ソースコードは一部ではなく動作可能な完全な形で提示していただいたほうが好ましいです。
mesii

2023/02/07 09:10

@jimbe 貴重なご意見ありがとう御座います。
mesii

2023/02/07 11:05

携帯でもコンパイル可能なサイトを見つけました。確認したところ修正箇所が複数あり正しく修正しました。 他の方に意見を聞いたところif文の方が好まれることもあるそうなので3項演算子を変更しています。 貴重なお時間ありがとうございました。
jimbe

2023/02/07 16:27 編集

>if文の方が好まれることもあるそうなので 好みと言ってしまえば否定は出来ませんが、 if と三項演算子では表現が違い、読み手に与える認識が異なります。 if では当然 if(i==j) が先に来ますので「処理が分かれる」ことが先に認識されるのに対し、三項演算子では System.out.print が先ですので「表示する」ことが先に認識されます。 コードを読む人に対して「処理が分かれる」ことと「表示する」ことのどちらをより伝えたいかで記述を選ぶという判断基準もあります。
guest

回答2

0

質問のコードは、"@" が半角、"*" が全角になっていますが、
これは正しいコードですか?

質問のコードでは、System.out.print を number x number 回呼び出し、
System.out.println を number 回呼び出します。
if (i == j) の判定も number x number回実行します。

次のようにすれば、System.out.println を n 回呼び出すだけで済みます。

Java

1import java.util.*; // Scanner, Arrays 2 3class Main { 4 public static void main(String[] args) { 5 Scanner sc = new Scanner(System.in); 6 System.out.println("整数を入力"); 7 int n = sc.nextInt(); 8 char[] a = new char[n]; 9 Arrays.fill(a, '*'); 10 for (int i = 0; i < n; i++) { 11 a[i] = '@'; 12 System.out.println(a); 13 a[i] = '*'; 14 } 15 } 16}

投稿2023/02/07 17:05

編集2023/02/07 17:12
kazuma-s

総合スコア8224

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

  • nextInt() が使えます。
  • 外側のループの最後で改行を表示するとよいでしょう。

投稿2023/02/07 03:40

int32_t

総合スコア20884

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mesii

2023/02/07 04:48

nextInt()について調べたところ、整数のみ入力が可能なものでこちらの方がシンプルでしたので、修正更新しました。 携帯でのコード入力の為お時間がかかり申し訳ありません。 実行結果を確認したいのですが、あいにく携帯での実行結果を確認できるサイトがなく憶測での記述になっています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問