if語句 for語句
關于IF IF 條件判斷語句,語法格式如下: IF [NOT] ERRORLEVEL number command IF [NOT] string1==string2 command IF [NOT] EXIST filename command 說明: [NOT] 將返回的結果取反值即“如果沒有”的意思。
ERRORLEVEL 是命令執行完成后返回的退出值 Number 退出值的數字取值范圍0~255。判斷時值的排列順序應該又大到小。
返回的值大于或等于指定的值時條件成立。 string1==string2 string1和string2都為字符的數據,英文字符的大小寫將看做不同,這個條件中的等于號必須是2個(絕對相等),條件想等后即執行后面的 command EXIST filename 為文件或目錄存在的意思。
IF ERRORLEVEL這條語句必須放在某一個命令后面。執行命令后由IF ERRORLEVEL來判斷命令的返回值。
例: 1、 IF [NOT] ERRORLEVEL number command 檢測命令執行完后的返回值做出判斷。 echo off dir z: rem 如果退出代碼為1(不成功)就跳至標題1處執行 IF ERRORLEVEL 1 goto 1 rem 如果退出代碼為0(成功)就跳至標題0處執行 IF ERRORLEVEL 0 goto 0 :0 echo 命令執行成功! Rem 程序執行完畢跳至標題exit處退出 goto exit :1 echo 命令執行失敗! Rem 程序執行完畢跳至標題exit處退出 goto exit :exit Rem 這里是程序的出口 2、IF string1==string2 command string是字符串的意思,string1是第一個字符串,string2是第二個字符串。
檢測當前變量的值做出判斷: ECHO OFF IF %1==2 goto no (%1代表第一個字符串,“2”是第二個字符串) Echo 變量相等! Goto exit :no echo 變量不相等 goto exit :exit 大家可以這樣看效果 C:\>* 數字 3、IF [NOT] EXIST filename command 發現特定的文件做出判斷 echo off IF not EXIST * goto 1 echo 文件存在成功! goto exit :1 echo 文件不存在失敗! goto exit :exit 這個批處理大家可以放在c盤和d盤分別執行看看效果。 關于FOR FOR這個命令比較特殊是一個循環執行命令的命令,同時FOR的循環里面還可以套用FOR在進行循環。
這篇我們介紹基本的用法就不做套用的循環了,后面再來講解套用的循環。在批處理中FOR的命令如下: FOR [%%c] IN (set) DO [command] [arguments] 在命令行中命令如下: FOR [%c] IN (set) DO [command] [arguments] 常用參數: /L 該集表示以增量形式從開始到結束的一個數字序列。
因此,(1,1,5) 將產生序列 1 2 3 4 5,(5,-1,1) 將產生序列 (5 4 3 2 1)。 /D 如果集中包含通配符,則指定與目錄名匹配,而不與文件名匹配。
/F 從指定的文件中讀取數據作為變量 eol=c - 指一個行注釋字符的結尾(就一個) skip=n - 指在文件開始時忽略的行數。 delims=xxx - 指分隔符集。
這個替換了空格和跳格鍵的默認分隔符集。 tokens=x,y,m-n - 指每行的哪一個符號被傳遞到每個迭代的 for 本身。
這會導致額外變量名稱的分配。m-n格式為一個范圍。
通過 nth 符號指定 mth。如果符號字符串中的最后一個字符星號,那么額外的變量將在最后一個符號解析之后分配并接受行的保留文本。
usebackq - 指定新語法已在下類情況中使用:在作為命令執行一個后引號的字符串并且一個單引號字符為文字字符串命令并允許在 filenameset中使用雙引號擴起文件名稱。 下面來看一個例子: FOR /F "eol=; tokens=2,3* delims=, " %i in (*) do @echo %i %j %k 會分析 * 中的每一行,忽略以分號打頭的那些行,將每行中的第二個和第三個符號傳遞給 for 程序體;用逗號和/或空格定界符號。
請注意,這個 for 程序體的語句引用 %i 來取得第二個符號,引用 %j 來取得第三個符號,引用 %k來取得第三個符號后的所有剩余符號。對于帶有空格的文件名,您需要用雙引號將文件名括起來。
為了用這種方式來使用雙引號,您還需要使用 usebackq 選項,否則,雙引號會被理解成是用作定義某個要分析的字符串的。 %i 專門在 for 語句中得到說明,%j 和 %k 是通過tokens= 選項專門得到說明的。
您可以通過 tokens= 一行指定最多 26 個符號,只要不試圖說明一個高于字母 'z' 或'Z' 的變量。請記住,FOR 變量名分大小寫,是通用的;而且,同時不能有 52 個以上都在使用中。
您還可以在相鄰字符串上使用 FOR /F 分析邏輯;方法是,用單引號將括號之間的 filenameset 括起來。這樣,該字符串會被當作一個文件中的一個單一輸入行。
最后,您可以用 FOR /F 命令來分析命令的輸出。方法是,將括號之間的 filenameset 變成一個反括字符串。
該字符串會被當作命令行,傳遞到一個子 *,其輸出會被抓進內存,并被當作文件分析。因此,以下例子: FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i 會枚舉當前環境中的環境變量名稱。
以下列舉一個簡單的例子,他將說明參數/L和沒有參數的區別: 刪除文件* * * * * 例: ECHO OFF FOR /L %%F IN (1,1,5) DO DEL %%* 或 FOR %%F IN (1,2,3,4,5) DO DEL %%* 以上2條命令執行的結果都是一樣的如下: C:\>DEL * C:\>DEL * C:\>DEL * C:\>DEL * C:\>DEL * 關于變量的特別補充說明 批處理文件還可以像C語言的函數一樣使用。
mysql 觸發器 if 語句 update
@sqlz ='select asd from flkg';
EXECUTE(@sqlz);
----------
首先,mysql下動態語句不是這樣寫的,另外,觸發器里不能允許返回結果集的.
這里我是希望他能中斷更新!
---------------------
你的意思是不是要中斷后面的
"
SET amount =@amountmm
WHERE CODE=* AND whcode = * ;
"
這部分?
如果是的話,那這樣改下:
DELIMITER $$
USE `eerp`$$
DROP TRIGGER /*!50032 IF EXISTS */ `material_update`$$
CREATE TRIGGER `material_update` AFTER UPDATE ON `sf_material`
FOR EACH ROW BEGIN
IF *ng = 'Y' THEN
SET @amountmm = (SELECT * FROM warehouse WHERE CODE=* AND whcode = *);
IF @amountmm >=0 THEN
UPDATE warehouse
SET amount =@amountmm
WHERE CODE=* AND whcode = * ;
END IF ;
END IF;
END;
$$
DELIMITER ;
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
"我是要中斷更新。。不是后面。。。嚴格說就是這個表sf_material更新和后面的那個表warehouse更新也一起中斷!"
---------------------------------------------------------------
因為mysql下觸發器內不支持rollback,所以,變換一個方式來處理,如下:
那觸發器部分這么寫(注意:一定要使表TB_error_rollback在你的庫中不允許存在):
CREATE TRIGGER `material_update`
BEFORE UPDATE
ON `sf_material`
FOR EACH ROW
BEGIN
IF *ng = 'Y' THEN
SET @amountmm = (SELECT amount- * FROM warehouse WHERE CODE=* AND whcode = *);
IF @amountmm <0 THEN
update TB_error_rollback set name=1;
END IF;
UPDATE warehouse
SET amount =@amountmm
WHERE CODE=* AND whcode = *;
END IF;
END;
關于excel的if語句
執行真假值判斷,根據邏輯計算的真假值,返回不同結果。
可以使用函數 IF 對數值和公式進行條件檢測。 語法 IF(logical_test,value_if_true,value_if_false) Logical_test 表示計算結果為 TRUE 或 FALSE 的任意值或表達式。
例如,A10=100 就是一個邏輯表達式,如果單元格 A10 中的值等于 100,表達式即為 TRUE,否則為 FALSE。本參數可使用任何比較運算符。
Value_if_true logical_test 為 TRUE 時返回的值。例如,如果本參數為文本字符串“預算內”而且 logical_test 參數值為 TRUE,則 IF 函數將顯示文本“預算內”。
如果 logical_test 為 TRUE 而 value_if_true 為空,則本參數返回 0(零)。如果要顯示 TRUE,則請為本參數使用邏輯值 TRUE。
Value_if_true 也可以是其他公式。 Value_if_false logical_test 為 FALSE 時返回的值。
例如,如果本參數為文本字符串“超出預算”而且 logical_test 參數值為 FALSE,則 IF 函數將顯示文本“超出預算”。如果 logical_test 為 FALSE 且忽略了 Value_if_false(即 value_if_true 后沒有逗號),則會返回邏輯值 FALSE。
如果 logical_test 為 FALSE 且 Value_if_false 為空(即 value_if_true 后有逗號,并緊跟著右括號),則本參數返回 0(零)。Value_if_false 也可以是其他公式。
說明 函數 IF 可以嵌套七層,用 value_if_false 及 value_if_true 參數可以構造復雜的檢測條件。請參閱下面最后一個示例。
在計算參數 value_if_true 和 value_if_false 后,函數 IF 返回相應語句執行后的返回值。 如果函數 IF 的參數包含數組,則在執行 IF 語句時,數組中的每一個元素都將計算。
Microsoft Excel 還提供了其他一些函數,可依據條件來分析數據。例如,如果要計算單元格區域中某個文本字符串或數字出現的次數,則可使用 COUNTIF 工作表函數。
如果要根據單元格區域中的某一文本字符串或數字求和,則可使用 SUMIF 工作表函數。請了解關于根據條件計算值。
示例 1 如果您將示例復制到空白工作表中,可能會更易于理解該示例。 操作方法 創建空白工作簿或工作表。
請在“幫助”主題中選取示例。不要選取行或列標題。
從幫助中選取示例。 按 Ctrl+C。
在工作表中,選中單元格 A1,再按 Ctrl+V。 若要在查看結果和查看返回結果的公式之間切換,請按 Ctrl+`(重音符),或在“工具”菜單上,指向“公式審核”,再單擊“公式審核模式”。
1 2 A 數據 50 公式 說明(結果) =IF(A2<=100,"Within budget","Over budget") 如果上面的數字小于等于 100,則公式將顯示“Within budget”。否則,公式顯示“Over budget”。
(Within budget) =IF(A2=100,SUM(B5:B15),"") 如果上面數字為 100,則計算單元格區域 B5:B15,否則返回空文本 ("") 示例 2 如果您將示例復制到空白工作表中,可能會更易于理解該示例。 操作方法 創建空白工作簿或工作表。
請在“幫助”主題中選取示例。不要選取行或列標題。
從幫助中選取示例。 按 Ctrl+C。
在工作表中,選中單元格 A1,再按 Ctrl+V。 若要在查看結果和查看返回結果的公式之間切換,請按 Ctrl+`(重音符),或在“工具”菜單上,指向“公式審核”,再單擊“公式審核模式”。
1 2 3 4 A B 實際費用 預算費用 1500 900 500 900 500 925 公式 說明(結果) =IF(A2>B2,"Over Budget","OK") 判斷第 1 行是否超出預算 (Over Budget) =IF(A3>B3,"Over Budget","OK") 判斷第 2 行是否超出預算 (OK) 示例 3 如果您將示例復制到空白工作表中,可能會更易于理解該示例。 操作方法 創建空白工作簿或工作表。
請在“幫助”主題中選取示例。不要選取行或列標題。
從幫助中選取示例。 按 Ctrl+C。
在工作表中,選中單元格 A1,再按 Ctrl+V。 若要在查看結果和查看返回結果的公式之間切換,請按 Ctrl+`(重音符),或在“工具”菜單上,指向“公式審核”,再單擊“公式審核模式”。
1 2 3 4 A 成績 45 90 78 公式 說明(結果) =IF(A2>89,"A",IF(A2>79,"B", IF(A2>69,"C",IF(A2>59,"D","F")))) 為第一個成績指定一個字母等級 (F) =IF(A3>89,"A",IF(A3>79,"B", IF(A3>69,"C",IF(A3>59,"D","F")))) 為第二個成績指定一個字母等級 (A) =IF(A4>89,"A",IF(A4>79,"B", IF(A4>69,"C",IF(A4>59,"D","F")))) 為第三個成績指定一個字母等級 (C) 在上例中,第二個 IF 語句同時也是第一個 IF 語句的參數 value_if_false。同樣,第三個 IF 語句是第二個 IF 語句的參數 value_if_false。
例如,如果第一個 logical_test (Average > 89) 為 TRUE,則返回“A”;如果第一個 logical_test 為 FALSE,則計算第二個 IF 語句,以此類推。 用下列關鍵字指定數字的字母等級。
如果成績是 則返回 大于 89 A 80 到 89 B 70 到 79 C 60 到 69 D 小于 60 F。
在matlab 中if 語句
這個問題有點怪,
第一個問題,如果你是為了顯示的目的,建議你使用字符串的形式,因為matlab自動會把0000省略成0的。
a='0000';
若要用里面的數值,則可用一個函數轉過來str2num(a)=0;
第二個問題,看你的表示應該是判斷吧,可以用下面的語句實現你要的功能:
a=[(a>=10)]
第三個問題,如何把.M文件導成.dat文件,你說的是導出結果數據嗎?我還沒有聽說過直接把M文件變成dat文件。如果是導出數據的話,可以使用fprintf函數。fprintf 使用例子:
x = 0:.1:1; y = [x; exp(x)];
fid = fopen('*','w');
fprintf(fid,'%6.2f %12.8f\n',y);
fclose(fid);
轉載請注明出處華閱文章網 » navicatif語句