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

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

新規登録して質問してみよう
ただいま回答率
85.46%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Q&A

解決済

2回答

1246閲覧

ifブロックの条件式の理解ができない

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

0グッド

0クリップ

投稿2020/11/18 14:19

編集2020/11/20 15:08

c#

1static void Main(string[] args) 2 { 3 int size = int.Parse(Console.ReadLine()); 4 5 for (int i = 0; i < size; i++) 6 { 7 for (int j = 0; j < size; j++) 8 { 9 if (i == j || (size - i - 1) == j) 10 Console.Write("X"); 11 else 12 Console.Write(" "); 13 } 14 15 Console.WriteLine(); 16 } 17 }

このコードはサイトから流用してきたもので、サイズを示す数値を入力し、そのサイズの×印を何等かの文字で表示するプログラムですがifブロックの箇所がなぜこのようになるのか理解ができません。ご教授お願いします。

入手先: http://kitako.tokyo/lib/CsExercise.aspx?id=5

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

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

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

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

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

ku__ra__ge

2020/11/18 14:41

そもそもこのコードでは三角形は表示されないのでは? 実行して結果を確認しましたか?
dodox86

2020/11/19 01:06

問題に対する取り組み方自体に少し間違いがあるように思います。分からないからと言って答えを探すのではなく、まずは愚直でも自分でコードを考え、実装しましょう。それができるようになってはじめて他人の書いた(複雑だったりスマートだったりする)コードや意図が分かるようになります。
退会済みユーザー

退会済みユーザー

2020/11/19 09:16

申し訳ありません、質問のミスは下の回答してくださった方の通りです。修正しておきます。 >問題に対する取り組み方自体に少し間違いがあるように思います。  アドバイスありがとうございます。参考にさせてもらいます。
Zuishin

2020/11/19 09:20

他人の作ったコードを載せる時には必ず入手先を書いてください。回答にあるからいいやというものではありません。
dodox86

2020/11/19 10:09 編集

[回答がついてコメントが無用になったので削除]
退会済みユーザー

退会済みユーザー

2020/11/20 15:08

ご指摘ありがとうございます。修正しました
guest

回答2

0

探しました。(笑)

質問は内容は

C#の練習問題 6 - 4
http://kitako.tokyo/lib/CsExercise.aspx?id=106

ですが書いてある解答コードは

Javaの練習問題 4 - 21
http://kitako.tokyo/lib/JavaExercise.aspx?id=104

になっていませんか?
書いてあるコードは×印を出力する回答です

投稿2020/11/19 00:57

dekaaki

総合スコア292

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

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

退会済みユーザー

退会済みユーザー

2020/11/20 15:20

全くその通りです。以後気を付けます。
guest

0

ベストアンサー

ifブロックの箇所がなぜこのようになるのか理解ができません

適当にsizeの値を仮定して,

  • i=0j=0のときには,ifの条件を満たすから X が表示される
  • i=0j=1のときには…
  • ...
  • i=size-1j=size-1のときには…

とか確認してみれば,条件式の意味がわかるのではないでしょうか.

例えばsize=5を仮定すれば,計25パターンですから,3~5分もあれば確認できるでしょう.


それでもわからない場合,
「算数(数学? どっちの範疇かわからんけど)な感じに」考えてみればよいでしょう.

if (i == j || (size - i - 1) == j)

に書かれている2つの条件を個別に算数(数学)でなじみのある変数名であるxyを用いて書けば

  • y = x
  • (size - y - 1) = x (ここでsizeは定数)

という式.
どちらもただの1次関数(直線)です(「×印」は2本の線で描けるのだから,当然だ)から,このグラフを描いてみれば意味がわかるでしょう.

投稿2020/11/19 10:04

fana

総合スコア11675

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

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

退会済みユーザー

退会済みユーザー

2020/11/20 15:20

回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問