if falseの実装(真偽式のある場合)
条件式をif構文に直接記述する場合、!=
のように否定演算子!
を使えばいいのは有名だが、
> if(1 != 2) {
print("FALSE")
}
[1] "FALSE"
こういう書き方もできる。
> if(!(1 == 2)) {
print("FALSE")
}
[1] "FALSE"
さらに、この書き方でもやってることは一緒である。
> if((1 == 2) == FALSE) {
print("FALSE")
}
[1] "FALSE"
if falseの実装(logical型データの場合)
論理型データに直接否定演算子!
を付することでスマートに記述できる。
> logi <- FALSE
> if(!logi) {
print("FALSE")
}
[1] "FALSE"
より直感的な記述法を使うこともできる。
> logi <- FALSE
> if(logi == FALSE) {
print("FALSE")
}
[1] "FALSE"
さらに、真偽式の場合も同様に!=
を使うことができる。
> logi <- FALSE
> if(logi != TRUE) {
print("FALSE")
}
[1] "FALSE"
より複雑な判定式(複数条件)
条件式が複雑になり、さらにif falseを組み合わせるとなれば、さらにスマートに書く必要がある。
そこで、判定式の結果をlogical型データとしてオブジェクトに保存して、それに対して否定演算子!
を直接付するほうが、コードを見返すときや修正するときに便利である。
num <- 100
logi.range <- 0 <= num && num < 1 # 0以上1未満の判定
logi.not.numeric <- !is.numeric(num) # 数値型以外=TRUE
logi2 <- logi.range || logi.not.numeric # 数値型以外または0以上1未満 = TRUE, 数値型で0~1に含まれていない = FALSE
if(!logi2) {
print("numは0以上1未満でない数値型データである")
}
[1] "numは0以上1未満でない数値型データである"