C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: if文の分岐概念について


(過去ログ 56 を表示中)

[トピック内 17 記事 (1 - 17 表示)]  << 0 >>

■31975 / inTopicNo.1)  if文の分岐概念について
  
□投稿者/ シープラザ (16回)-(2009/01/30(Fri) 15:44:58)

分類:[C/C++] 

WinXPでVC(2003)を勉強中の初心者です。よろしくお願いします。

率直に質問させてください。
下記のコードがあるとします。

//----------------------------------------
int a;
int b;

a = 5;

b = a + 2;

if((a + 2) == b)
{
cout << "Equal!" << endl;
}else{
cout << "NG" << endl;
}

cin.ignore();

//-------------------------------------

これを実行した結果:
Equal!
NG

つまり、一致するルートも一致しないルートも両方通ってしまいました。
デバッグで一行ずつ見ていっても、何故かEqualを描画後に普通にelseの中に入りNGを描画してしまいます。

VBだとありえない動きだと思うのですが、Cだとありえるという事でしょうか?
ありえるとしたら原因は何が考えられますか?

やりたい事は、上記のコードを実行した結果で「Equal!」だけ表示させたいです。

引用返信 編集キー/
■31977 / inTopicNo.2)  Re[1]: if文の分岐概念について
□投稿者/ aetos (84回)-(2009/01/30(Fri) 15:56:41)
No31975 (シープラザ さん) に返信

> VBだとありえない動きだと思うのですが、Cだとありえるという事でしょうか?

ありえません。

> ありえるとしたら原因は何が考えられますか?

ファイルが壊れてる?
リビルドしてみるとか。
引用返信 編集キー/
■31979 / inTopicNo.3)  Re[1]: if文の分岐概念について
□投稿者/ .SHO (611回)-(2009/01/30(Fri) 15:58:34)
ありえないです。
言語の文法うんぬんではなく、根本的に他の何かが間違ってます。

引用返信 編集キー/
■31980 / inTopicNo.4)  Re[2]: if文の分岐概念について
□投稿者/ シープラザ (17回)-(2009/01/30(Fri) 16:06:28)
お返事ありがとうございます。

aetosさん
 リビルドしてみるとか。
PCを再起動してリビルドをかけましたが駄目でした。

.SHOさん
言語の文法うんぬんではなく、根本的に他の何かが間違ってます。
ですよね…
一体なにが…

デバッガもおかしいようで、ブレークポイントをつけても実行をかけるとそのポイントが勝手にずれたりします。(変数宣言位置とかではないです)
さらに実行中に変数にカーソルを当てても変数の中身が出る物と出ない物があります。出ない場合は「int aaa」のように変数の型が表示されます。

これはもう…ファイルが…?
引用返信 編集キー/
■31981 / inTopicNo.5)  Re[3]: if文の分岐概念について
□投稿者/ .SHO (612回)-(2009/01/30(Fri) 16:11:23)
No31980 (シープラザ さん) に返信

IDE使わないで、コマンドラインから
% cl aaa.cpp
でコンパイルしても、同じ結果ですか?
引用返信 編集キー/
■31982 / inTopicNo.6)  Re[3]: if文の分岐概念について
□投稿者/ επιστημη (1618回)-(2009/01/30(Fri) 16:12:38)
επιστημη さんの Web サイト
ありえねーので追試したく。
現おためしコードを「一切いぢらず丸ごと」呈示してもらえませんか。

引用返信 編集キー/
■31985 / inTopicNo.7)  Re[4]: if文の分岐概念について
□投稿者/ Blue (4回)-(2009/01/30(Fri) 16:29:28)
2009/01/30(Fri) 16:31:04 編集(投稿者)

No331982 (επιστημη さん) に返信
> ありえねーので追試したく。
>現おためしコードを「一切いぢらず丸ごと」呈示してもらえませんか。
確かにそうですね。

>これを実行した結果:
実行できませんもの。
あるソースコードの断片だけ見せても、そこだけが問題であるとは限らないこともあります。
引用返信 編集キー/
■31999 / inTopicNo.8)  Re[5]: if文の分岐概念について
□投稿者/ シープラザ (18回)-(2009/01/30(Fri) 18:08:10)
現状を報告します。
デバッグ中に変数が見れなくなる話ですが、クイックウォッチで見ると"CXX0017 シンボルが見つかりません"のエラーになります。
完全に新規の変数なので大文字小文字も問題なく、直前でちゃんと宣言もされています。なのになぜ…
if文の問題はそれに関連してくるのかなぁと思いながら調査中です。

.SHOさん
clの使い方も検索中です。これで通ればいいんですが…

επιστημηさん、Blueさん
>現おためしコードを「一切いぢらず丸ごと」呈示してもらえませんか。
すいません、社外秘なものでして…
それにその部分のソースが絡みそうな箇所をすべて挙げると数千行になってしまいます…
なので外部の人になかなか聞けなくて苦しんでいます…

引用返信 編集キー/
■32010 / inTopicNo.9)  Re[6]: if文の分岐概念について
□投稿者/ επιστημη (1621回)-(2009/01/30(Fri) 18:23:32)
επιστημη さんの Web サイト
2009/01/30(Fri) 18:25:21 編集(投稿者)

> >現おためしコードを「一切いぢらず丸ごと」呈示してもらえませんか。
> すいません、社外秘なものでして…
> それにその部分のソースが絡みそうな箇所をすべて挙げると数千行になってしまいます…

ならば「その現象が再現できる最小のコード」を呈示してください。
それができないなら「あなたの思い違い」あるいは「どっかぶっ壊れてる」てことで game-over です。
# 全員が「ありえねー」ってゆってんだから。

引用返信 編集キー/
■32011 / inTopicNo.10)  Re[6]: if文の分岐概念について
□投稿者/ .SHO (618回)-(2009/01/30(Fri) 18:25:38)
No31999 (シープラザ さん) に返信

> すいません、社外秘なものでして…
> それにその部分のソースが絡みそうな箇所をすべて挙げると数千行になってしまいます…
> なので外部の人になかなか聞けなくて苦しんでいます…

最初に書いたコードで再現してんじゃないの???
引用返信 編集キー/
■32020 / inTopicNo.11)  Re[7]: if文の分岐概念について
□投稿者/ επιστημη (1625回)-(2009/01/30(Fri) 18:35:18)
επιστημη さんの Web サイト
> 最初に書いたコードで再現してんじゃないの???

else の直後に ; があったりしてな ^^;;;;;
# とエスパー回答。

引用返信 編集キー/
■32022 / inTopicNo.12)  Re[8]: if文の分岐概念について
□投稿者/ .SHO (620回)-(2009/01/30(Fri) 18:40:24)
No32020 (επιστημη さん) に返信

> # とエスパー回答。

社外秘と言ってるコードから質問のコードに移す時点で
思いこみで正確に移してないと思うの心。

引用返信 編集キー/
■32036 / inTopicNo.13)  Re[9]: if文の分岐概念について
□投稿者/ シープラザ (19回)-(2009/01/30(Fri) 19:33:55)
返事遅れてすいません。

まず変数が見れないのは、どうも[static void]の関数内で宣言したからっぽいです。
外で宣言してやったらちゃんと中身がデバッグで見れました。
静的空間で動的メモリを見ようとしたからかな??

.SHOさんの仰る通り、わかりやすくピンポイントで拾っているつもりでしたが、実際のコードの現況が漏れているのだと思います。
ただ、会社の人に実際に現象を見てもらったのですがやっぱり口を揃えて「ありえない」でした(笑)
テクニカルなエラーならともかく、エラーすら出ずにシステムの機能としてのデバッグがおかしいのでどうにもなりません。
先輩は「この部分に関係ないどっかでメモリ壊してて、そこに変数割り当てようとしておかしくなってんのかな?」と言っていましたが…
まぁ、少なくとも「ありえない」って事は皆さんのお陰でわかりました。
膨大なソースを先輩と原因を究明しようと思います。
原因がわかったら報告します(笑)

有難うございました。
解決済み
引用返信 編集キー/
■32053 / inTopicNo.14)  Re[10]: if文の分岐概念について
□投稿者/ も (68回)-(2009/01/30(Fri) 22:18:19)
No32036 (シープラザ さん) に返信
> テクニカルなエラーならともかく、エラーすら出ずにシステムの機能としてのデバッグがおかしいのでどうにもなりません。
> 先輩は「この部分に関係ないどっかでメモリ壊してて、そこに変数割り当てようとしておかしくなってんのかな?」と言っていましたが…
> まぁ、少なくとも「ありえない」って事は皆さんのお陰でわかりました。
一番ありえるのが,「コピペで同じような処理を記述してて,
全く別のところで"Equal!"を表示してる物と,"NG"を表示しているものが混在している」
ってかんじ.
引用返信 編集キー/
■32064 / inTopicNo.15)  Re[11]: if文の分岐概念について
□投稿者/ επιστημη (1631回)-(2009/01/30(Fri) 23:18:07)
επιστημη さんの Web サイト
なんかこー、おっきなもんをろくに単体テストせずに一気にこさえ、
いきなり本番さながらのテストやってるよなふんいき。

引用返信 編集キー/
■32084 / inTopicNo.16)  Re[10]: if文の分岐概念について
□投稿者/ .SHO (625回)-(2009/01/31(Sat) 12:07:36)
No32036 (シープラザ さん) に返信

> テクニカルなエラーならともかく、エラーすら出ずにシステムの機能としてのデバッグがおかしいのでどうにもなりません。

「システムの機能としてのデバッグがおかしい」って日本語が変だけど
ソフト開発とはそういうものです。
そして、どにもならないことはないですし、どうにかしないとダメですよね。

解決済み
引用返信 編集キー/
■32086 / inTopicNo.17)  Re[1]: if文の分岐概念について
□投稿者/ 渋木宏明(ひどり) (1050回)-(2009/01/31(Sat) 12:30:02)
渋木宏明(ひどり) さんの Web サイト
> 下記のコードがあるとします。

ほんとに、そのコードと全く同じものを実行しても現象が発生しますか?

単純なコードで発生しないなら、問題のコード中あるいはそのコードに至るまでの間にスタックが壊れているとか、そういう方向の問題が疑われます。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -