IF(計算機中的指令)

IF(計算機中的指令)

if是 計算機程式語言一個關鍵字,分支結構的一種。

基本介紹

  • 中文名:IF
  • 類屬:程式語言關鍵字
  • 形式:3種
  • 套用:C/Java/AS
程式語言,C/Java/AS中,Pascal中,BASIC中,批處理—if,shell—if,1,2,語句,三種形式,嵌套,

程式語言

if

C/Java/AS中

if 語句的3種形式
1. if(表達式)語句 (單分支if語句)
#include<stdio.h>
int main()
{
int x=1;
int y=2;
if(x<y)
printf("%d",x);
fflush(stdin);
getchar();
}
2 if(表達式)語句1 else 語句2 (雙分支if語句)
#include<stdio.h>
int main()
{
int x=1;
int y=2;
if(x>y)
printf("%d",x);
else
printf("%d",y);
fflush(stdin);
getchar();
}
3 if(表達式1)語句1
else if (表達式2)語句2
else if (表達式3) 語句3
……
else if (語句m) 語句
else 語句n (if的嵌套)
#include<stdio.h>
int main()
{
int a,c;
char b;
scanf("%d%c%d",&a,&b,&c);
if(b=='+')
printf("=%d",a+c);
else if (b=='-')
printf("=%d",a-c);
else if (b=='*')
printf("=%d",a*c);
else if (b=='/')
printf("=%d",a/c);
fflush(stdin);
getchar();
}

Pascal中

if <條件> then <語句1> else <語句2>;
或者
if <條件> then <語句> ;
注意:Pascal中也有if 的嵌套,但else只承接最後一個沒有承接的if,如:
if <條件1> then if <條件2> then <語句1> else <語句2>; 此處<語句2>若且唯若<條件1>成立且<條件2>不成立時運行
if <條件1> then begin if <條件2> then <語句1> end else <語句2>; 此處<語句2>只要<條件1>成立就運行

BASIC中

IF <條件> THEN
<語句體>
END IF
或者
IF <條件> THEN
<語句體1>
ELSE
<語句體2>
END IF
說明
#If...Then...#Else 指令的作用與 If...Then...Else 語句相同,其差異在於 #If#Else#ElseIf,及 #End If 指令沒有單獨成行的形式,也就是說,在指令所在的那一行,不能有其他代碼出現。條件編譯通常用來編譯不同平台上的同一個程式。也可以用來避免調試程式代碼出現在可執行程式中。條件編譯時被排除的程式代碼在最後的執行檔中被完全略去,所以不會對程式的大小或功能有任何影響。

批處理—if

IF (DOS命令)
執行批處理程式中的條件處理。
IF [NOT] ERRORLEVEL number command
IF [NOT] string1==string2 command
IF [NOT] EXIST filename command
NOT 指定只有條件為 false 的情況下, Windows XP 才
應該執行該命令。
ERRORLEVEL number 如果最後運行的程式返回一個等於或大於
指定數字的退出編碼,指定條件為 true。
string1==string2 如果指定的文字字元串匹配,指定條件為 true。
EXIST filename 如果指定的檔案名稱存在,指定條件為 true。
command 如果符合條件,指定要執行的命令。如果指定的
條件為 FALSE,命令後可跟一個執行 ELSE
關鍵字後的命令的 ELSE 命令。
ELSE 子句必須在 IF 之後出現在同一行上。例如:
IF EXIST filename. (
del filename.
) ELSE (
echo filename. missing.
)
因為 del 命令需要用一個新行終止,以下子句不會有效:
IF EXIST filename. del filename. ELSE echo filename. missing
由於 ELSE 命令必須與 IF 命令的尾端在同一行上,以下子句也
不會有效:
IF EXIST filename. del filename.
ELSE echo filename. missing
如果都放在同一行上,以下子句有效:
IF EXIST filename. (del filename.) ELSE echo filename. missing
如果命令擴展名被啟用,IF 會如下改變:
IF string1 compare-op string2 command
IF CMDEXTVERSION number command
IF DEFINED variable command
其中,比較運算符可以是:
EQU - 等於
NEQ - 不等於
LSS - 小於
LEQ - 小於或等於
GTR - 大於
GEQ - 大於或等於
及 /I 開關;如果該開關被指定,則說明要進行的字元串比較不分
大小寫。/I 開關可以用於 IF 的 string1==string2 的形式上。這些
比較都是通用的;原因是,如果 string1 和 string2 都是由數字
組成的,字元串會被轉換成數字,進行數字比較。
CMDEXTVERSION 條件的作用跟 ERRORLEVEL 的一樣,除了它
是在跟與命令擴展名有關聯的內部版本號比較。第一個版本
是 1。每次對命令擴展名有相當大的增強時,版本號會增加一個。
命令擴展名被停用時,CMDEXTVERSION 條件不是真的。
如果已定義環境變數,DEFINED 條件的作用跟 EXISTS 的一樣,
除了它取得一個環境變數,返回的結果是 true。
如果沒有名為 ERRORLEVEL 的環境變數,%ERRORLEVEL%
會擴充為 ERROLEVEL 當前數值的字元串表達式;否則,您會得到
其數值。運行程式後,以下語句說明 ERRORLEVEL 的用法:
goto answer%ERRORLEVEL%
:answer0
echo Program had return code 0
:answer1
echo Program had return code 1
您也可以使用以上的數字比較:
IF %ERRORLEVEL% LEQ 1 goto okay
如果沒有名為 CMDCMDLINE 的環境變數,%CMDCMDLINE%
將在 CMD.EXE 進行任何處理前擴充為傳遞給 CMD.EXE 的原始
命令行;否則,您會得到其數值。
如果沒有名為 CMDEXTVERSION 的環境變數,
%CMDEXTVERSION% 會擴充為 CMDEXTVERSION 當前數值的
字串符表達式;否則,您會得到其數值。

shell—if

1

[ -a FILE ] 如果 FILE 存在則為真。
[ -b FILE ] 如果 FILE 存在且是一個塊特殊檔案則為真。
[ -c FILE ] 如果 FILE 存在且是一個字特殊檔案則為真。
[ -d FILE ] 如果 FILE 存在且是一個目錄則為真。
[ -e FILE ] 如果 FILE 存在則為真。
[ -f FILE ] 如果 FILE 存在且是一個普通檔案則為真。
[ -g FILE ] 如果 FILE 存在且已經設定了SGID則為真。
[ -h FILE ] 如果 FILE 存在且是一個符號連線則為真。
[ -k FILE ] 如果 FILE 存在且已經設定了粘制位則為真。
[ -p FILE ] 如果 FILE 存在且是一個名字管道(F如果O)則為真。
[ -r FILE ] 如果 FILE 存在且是可讀的則為真。

2

[ -s FILE ] 如果 FILE 存在且大小不為0則為真。
[ -t FD ] 如果檔案描述符 FD 打開且指向一個終端則為真。
[ -u FILE ] 如果 FILE 存在且設定了SUID (set user ID)則為真。
[ -w FILE ] 如果 FILE 如果 FILE 存在且是可寫的則為真。
[ -x FILE ] 如果 FILE 存在且是可執行的則為真。
[ -O FILE ] 如果 FILE 存在且屬有效用戶ID則為真。
[ -G FILE ] 如果 FILE 存在且屬有效用戶組則為真。
[ -L FILE ] 如果 FILE 存在且是一個符號連線則為真。
[ -N FILE ] 如果 FILE 存在 and has been mod如果ied since it was last read則為真。
[ -S FILE ] 如果 FILE 存在且是一個套接字則為真。
[ FILE1 -nt FILE2 ] 如果 FILE1 has been changed more recently than FILE2, or 如果 FILE1 exists and FILE2 does not則為真。
[ FILE1 -ot FILE2 ] 如果 FILE1 比 FILE2 要老, 或者 FILE2 存在且 FILE1 不存在則為真。
[ FILE1 -ef FILE2 ] 如果 FILE1 和 FILE2 指向相同的設備和節點號則為真。
[ -o OPTIONNAME ] 如果 shell選項 “OPTIONNAME” 開啟則為真。
[ -z STRING ] “STRING” 的長度為零則為真。
[ -n STRING ] or [ STRING ] “STRING” 的長度為非零 non-zero則為真。
[ STRING1 == STRING2 ] 如果2個字元串相同。 “=” may be used instead of “==” for strict POSIX compliance則為真。
[ STRING1 != STRING2 ] 如果字元串不相等則為真。
[ STRING1 < STRING2 ] 如果 “STRING1” sorts before “STRING2” lexicographically in the current locale則為真。
[ STRING1 > STRING2 ] 如果 “STRING1” sorts after “STRING2” lexicographically in the current locale則為真。
[ ARG1 OP ARG2 ] “OP” is one of -eq, -ne, -lt, -le, -gt or -ge. These arithmetic binary operators return true if “ARG1” is equal to, not equal to, less than, less than or equal to, greater than, or greater than or equal to “ARG2”, respectively. “ARG1” and “ARG2” are integers

語句

三種形式

if(表達式)語句
if(表達式)語句1else語句2
if(表達式1)語句1

嵌套

在if語句中又包含一個或多個if語句稱為if語句的嵌套

相關詞條

熱門詞條

聯絡我們