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

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

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

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

C#

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

Q&A

解決済

2回答

418閲覧

if (-1 < i - 1) {}  for文内でこのような処理を見ました。歴史的な背景がありますか?(初心者)

sasa94

総合スコア1

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

C#

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

1グッド

1クリップ

投稿2020/05/22 05:28

質問の理由

システムの開発現場で古いコードをメンテナンスしています。
if ( 0 < i ) と等価であると思っています。
開発は1年未満の初心者ですが、意図が分かりませんでした。
10年前に書かれたコードですが、削除された形跡もないのでc#の歴史的な背景があるかと思っていますが、単に考えすぎかとも考えています。
もしくは、cで開発していたものを流用した可能性もありますか?

該当のソースコード

c#

1for (int i = 0; i < text.Length; i++){ 2 // 処理 3 4 if (-1 < i - 1) 5 { 6 // 処理 7 } 8 9 // 処理 10}

補足情報)

C# 10年以上前からあるコードです

DrqYuto👍を押しています

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

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

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

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

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

KOZ6.0

2020/05/22 06:10

i = int.MinValue のとき (-1 < i - 1) と (0 < i) は違ったりしますけど、そういうことでもなさそうですね。 そのプログラムの初期リリースを見れば何かわかるかもしれません。
sasa94

2020/05/22 06:28

回答ありがとうございます。 すいません、補足に追記忘れておりましたが、こちらは途中で改変されたコード(改変履歴もあります)になります。 質問時の私の想像力不足でした。
guest

回答2

0

cで開発していたものを流用した可能性

可能性はあるでょう。元々、C言語の系譜に属するので、基本構文の大半は流用できます。ただ、C言語でもあまり使うとは思えない。

単に、最初に書いた人が、そう書きたかったのでしょう。で、問題が無い限り、触らないのが、今も昔も現場の(暗黙の)ルール。
気になれば、直せば良いです。
ただ、手を入れる以上、修正評価の対象となるので注意が必要。(等価のコードの筈が、バグ...も昔から)

投稿2020/05/22 05:50

pepperleaf

総合スコア6385

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

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

Zuishin

2020/05/22 05:52

> ただ、C言語でもあまり使うとは思えない。 そうですね。C でもこんな書き方はしないと思いますから、関係ないと思います。
sasa94

2020/05/22 06:29

回答ありがとうございます。 修正に対しての心構えを教えていただき、ありがとうございます。 指摘の通り、触らずにおこうと思います。
guest

0

ベストアンサー

中の処理で i - 1 を使っているのでしょう。そうでなければ深い意味はなく、なんとなくそう書いてしまったのが動いてるから良しとしたのではないかと思います。

投稿2020/05/22 05:31

Zuishin

総合スコア28669

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

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

sasa94

2020/05/22 06:36

おっしゃる通り、その後の処理で text.SubString(i -1, 2)と記述されていました。 この i -1 を共通で認識するために、また2文字を取得するために、書かれたものだと解釈しました。 迅速な回答をしていただきありがとうございました。 迅速な回答と質問の内容から本質を解答してくださった Zuishin様をベストアンサーとします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問