
No.1ベストアンサー
- 回答日時:
変数の宣言と問題の式の間には別の処理が有るものとします。
括弧の中は、条件判断をしています。結果として「True」か「False」が返るのですがVBの場合、
True=-1
False=0
だったと思います。
なので、intAが3以下の時はintBは0、intAが3より大きいときはintBは1になります。
intB=1+(intA<=3)
↓
If intA<=3 Then
intB=0
Else
intB=1
End If
と同じ事だと思いますよ。
No.2
- 回答日時:
<=みたいな比較の不等号は、プログラム言語では「比較演算子」と言って、左右の項を比較した結果、その条件が成立っていたら(a<=bなら aがb以下だったら)「真」を表わす値、そうでないなら(a<=bなら aがbより大きかったら)「偽」を表わす値になります。
一応、VB6ではBoolean型のtureとfalseという値になるのですが、これを数値を使う式の中で使うと、trueが-1,falseが0として扱われます。
その例ですと
intA≦3の場合、 intA<=3はtrueなので
intB= 1+ (-1) → intB =0
intA>3の場合、 intA<=3はfalseなので
intB= 1+ (0) → intB =1
となります。
比較演算子がどんな値になるか、true/falseがどんな値になるか、は言語によって違います。
C言語ではtrueのときは1になります。このプログラムをそのまま移植するなら intB= 1-(intA<=3); にしないと値が変わってしまいます。
また、True/Falseと数値とはまったく別の値で、単純に相互変換できないものもあります。
昔のインタプリタ型Basicとかだと
if intA<=3 then intB=0 else intB=1
とかするより格段に速かったので、有効なやり方でしたが、最近では、CPUの高速化やコンパイルの最適化でほとんど差が無い上に、プログラムがわかりにくくなるので、あんまり使わないテクニックですね
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語 exitの使い方
-
ラジオボタンの値の取得につい...
-
VBA コンボボックスの値をスピ...
-
VBAで配列のNULL判定
-
フォームを開くときに、コンボ...
-
C#で動的にコントロールを取得...
-
VB6.0-整数と余りを求める
-
データ構造のmapとは?
-
VBAの定数の使い方で、計算値を...
-
C#でのIF文 時間比較のやり方
-
ドキュメントビューの扱い
-
functionの第二引数の結果が表...
-
足して100になるような乱数のア...
-
3bitアップダウンカウンタ(Up/...
-
定数のメリットとは?
-
UWSCのcallについて
-
VBAでダブルコーテーション入り...
-
jsp~jspにhiddenを使って変数...
-
Accessで文字列のバイト数読み込み
-
[VBS]変数を定数に変換する方法...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語 exitの使い方
-
Excel-vba 文字列と変数を...
-
フォームを開くときに、コンボ...
-
VB6.0-整数と余りを求める
-
VBAで配列のNULL判定
-
数字の位ごとの値を表示するプ...
-
フリーランタイマーの時間差分...
-
VBAの定数の使い方で、計算値を...
-
足して100になるような乱数のア...
-
Access2003 オートナンバーの現...
-
DWORDって
-
Xorshiftの値を絞り込む方法を...
-
ラジオボタンの値の取得につい...
-
DataGridView 複数行同時変更...
-
C#で動的にコントロールを取得...
-
VBA コンボボックスの値をスピ...
-
vbaで極大値を抽出する方法
-
Nullってどういう意味ですか?
-
コンボボックスの名前を変数に...
-
データ構造のmapとは?
おすすめ情報