A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
真偽の判定で偽であっても、その文は実行されます。
ただそれだけ。演算子の優先順位とかは関係ありません。後置ディクリメントであるa-->0であってもaが0の場合でも偽の判定が出てもディクリメントされて-1になります。
実行されないのはifの後ろにある文。ifの直後の()中はルールに従い実行される。
それともう一つ突っ込み。
--a>0
これはaが1の場合でも偽になります。ディクリメントが評価の前に行われますのでa:1→0としてからa>0が判定されます。
No.3
- 回答日時:
>これはaが0の時は真と偽であり結果的には&&により偽となるため
&&の解釈、違います。この説明は&であり&&ではありませんよ。
&&の場合は、
「これはaが0の時は a <= 500 が真となり、&&により、 --a> 0 が評価され結果的に偽になるため」
です。
なお --a> 0 を評価するときに、aの値は0から−1に変えられます。
<おまけ> aが600のときは、a <= 500 が偽となり、&&により --a> 0 は評価されることなく、式全体は偽になります。--a> 0 は評価されないので、aは600のままです。
No.2
- 回答日時:
--a> 0 は、これが成立しようがしまいがaから1引かれます。
if (a <= 500 && --a> 0){
処理
}
上記は
if (a <= 500){
--a; ・・・・・①
if(a > 0){
処理・・・・・・・・②
}
}
と等価です。
aが0のとき①が実行されます。②は実行されません。しかし①が実行されるので-1になります。
if (a <= 500 && --a> 0){
処理
}
上記は
if (a <= 500){
--a; ・・・・・①
if(a > 0){
処理・・・・・・・・②
}
}
と等価です。
aが0のとき①が実行されます。②は実行されません。しかし①が実行されるので-1になります。
条件① 条件②
if (a <= 500 && --a> 0)
は、
条件①が真の場合のみ次の条件②評価されます。
この時、条件②が成立しようがしまいが、--aがまず、実行されます。
(--変数又は++変数 を前置演算子といいますが、前置演算子は、評価に先立ち実行されます)
つまり
a--;
a > 0
の順に実行したのと同じです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux bashの変数でブランクがあるかチェックする方法教えて下さい。 3 2023/04/06 16:09
- Excel(エクセル) エクセルでの左のセルのコピー 3 2022/07/25 12:31
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
- 病院・検査 本日血液検査をしてきました。 結果、この数値が出るということは、小腸の病気しかんがえられないんだけど 5 2022/11/12 19:27
- Excel(エクセル) 表示形式、文字列セル(列)に数式を入力するには マクロ 1 2022/09/18 10:53
- 数学 |x|+|y|=1という式で、x<0,y>0のとき、 「-x+y=1⇄y=x+1」⋯①となりますが、 6 2022/08/18 10:30
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- 物理学 ポテンシャルが有限で不連続の時、右側の波動関数をφ1(x)、左側をφ2(x)とする。境界条件の「波動 2 2023/06/04 13:53
- Excel(エクセル) ExcelのIF関数について 4 2023/05/24 12:54
- 大人・中高年 血液検査 3 2022/04/20 19:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
「読み取りと実行」と「読み取...
-
VBscriptが起動しない?
-
[teraterm] waitコマンドで停止...
-
エクセル フォルダの画像を画...
-
exeファイルを実行するとコマン...
-
バッチファイルの内容を表示さ...
-
pythonスクリプトを管理者権限...
-
NASに移したBATファイルからセ...
-
VBS実行時にコマンドプロンプト...
-
Excel VBA ステップインが途中...
-
VB2010 で指定時間にプロシジャ...
-
Excelのセルの内容をコマンドプ...
-
Excel(エクセル) VBA プロシー...
-
Access の VBA 実行中に他の操...
-
VBAのコマンドプロンプトでpaus...
-
ttlマクロによるディレクトリ配...
-
Excel VBAで複数のバッチファイ...
-
Powershellとコマンドプロンプト
-
vba でイラストレーターのスク...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
コマンドプロンプトのエラーに...
-
「読み取りと実行」と「読み取...
-
exeファイルを実行するとコマン...
-
VBscriptが起動しない?
-
バッチファイルの内容を表示さ...
-
Excel VBA ステップインが途中...
-
エクセル フォルダの画像を画...
-
バッチファイルが不正終了して...
-
PDFファイルを開き、印刷し、閉...
-
複数のbatファイルを自動実行し...
-
[teraterm] waitコマンドで停止...
-
VBScriptでコマンドプロンプト...
-
ネットワーク名が見つかりません
-
Excel(エクセル) VBA プロシー...
-
Access の VBA 実行中に他の操...
-
VB.NETでのDOSコマンドを実行に...
-
Excelのセルの内容をコマンドプ...
-
VBS実行時にコマンドプロンプト...
-
VBA 既に開いているBookに継続...
-
メッセージを他のPCに出したい
おすすめ情報