九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
if 使用1-比較運(yùn)算

if 的比較運(yùn)算

 

在批處理程序中執(zhí)行條件處理。

 

語法

 

if [not] string1==string2command [else command2]

 

如果啟用了命令擴(kuò)展(默認(rèn)),可以使用以下語法:

 

if [/i] string1 compareopstring2 command [else command2]

 

參數(shù)

 

not
指定只有當(dāng)條件為假時才執(zhí)行該命令。  
command
指定只有滿足前面的條件時才應(yīng)執(zhí)行的命令。
string1==string2
只有當(dāng) string1string2相同時才能指定真條件。這些值可以是文字字符串或批處理變量(例如,%1)。對于文字字符串,不需要使用問號。
CompareOp
指定 3 個字母的比較運(yùn)算符。下表列出了 compareop 的有效值。

 

運(yùn)算符 說明
EQU 等于
NEQ 不等于
LSS 少于
LEQ 少于或等于
GTR 大于
GEQ 大于或等于

 

/i
強(qiáng)制字符串比較忽略大小寫。可以在 ifstring1==string2 形式上使用/i。這些比較是通用的,如果string1string2都由所有的數(shù)字組成,那么字符串將被轉(zhuǎn)換為數(shù)字并且將執(zhí)行數(shù)字比較。
command2
指定將傳遞給 else 子句中命令的命令行命令和任何參數(shù)。
/?
在命令提示符顯示幫助。

 

注釋

 

  • 如果 if 命令中指定的條件為真,則系統(tǒng)將執(zhí)行該條件后的命令。如果條件為假,則 if子句中的命令將被忽略,同時執(zhí)行 else 子句中的任何命令 command2(如果指定)。
  • 使用 else 子句

    else 子句必須出現(xiàn)在與 if 后的命令相同的行中。

     

    ::示例1

    @echo off&setlocalenabledelayedexpansion
    for %%i in (0 1) do (
    set /a n+=1
    if %%i == 0 (
    echo 第!n!次循環(huán)時,變量為0
    ) else (
    echo 第!n!次循環(huán)時,變量為1
    )
    )
    pause

     

    如果要完全在單行上格式化它,可以使用如下形式的原始聲明:

     

    ::示例2

    @echo off&setlocalenabledelayedexpansion
    for %%i in (0 1) do (
    set /a n+=1
    if %%i == 0 (echo 第!n!次循環(huán)時,變量為0) else echo 第!n!次循環(huán)時,變量為1
    )
    pause

    de> DE>

詳解 

 

1, == 與 EQU 之間的區(qū)別:

 

  作為初學(xué)者,很容易將 == 與 EQU 混淆的認(rèn)為他們一樣,其實(shí)這是不對的。==是用來比較相同的,換句話說,就是比較字符串是否完全相同的。而 EQU是比較運(yùn)算符,含有運(yùn)算的功能,換句話說,是可以在比較之前轉(zhuǎn)換數(shù)字為對應(yīng)的數(shù)值,然后再比較。

  既然說到了數(shù)值,我們就擴(kuò)展講一下:數(shù)值是指十進(jìn)制的數(shù)字,在前綴加 0× (這里x忽略大小寫)則表示十六進(jìn)制數(shù)字,加 0則表示八進(jìn)制數(shù)字。因此,0x12 與 18 相同,也與 022 相同,八進(jìn)制表示法容易引起混淆。例如,08 和 09不是有效數(shù)字,因?yàn)?8 和 9 不是有效的八進(jìn)制數(shù)字。

  所以,在使用 == 比較時,0x12、022和18是不相等的,但在使用 EQU比較時,他們是相等的,因?yàn)樗麄儗?yīng)的數(shù)值都是18!參考下面的示例3:

 

::示例3

@echo off
if 0x12 equ 0X12 echo 0x12 等于equ 0X12
if 0x12 equ 18 echo 0x12 等于equ 18
if 0x12 equ 022 echo 0x12 等于equ 022
if 022 equ 18 echo 022 等于equ 18
if 0x12 == 0X12 (echo 0x12 相同于== 0X12) else echo 0x12 不相同于==0X12
if /i 0x12 == 0X12 (echo 0x12 相同于== 0X12 忽略大小寫) else echo 0x12不相同于== 0X12 忽略大小寫
if 0x12 == 18 (echo 0x12 相同于== 18) else echo 0x12 不相同于== 18
if 0x12 == 022 (echo 0x12 相同于== 022) else echo 0x12 不相同于==022
if 022 == 18 (echo 022 相同于== 18) else echo 022 不相同于== 18
pause

 

2,數(shù)字比較運(yùn)算:

 

  1. 只有不被引號引起來,并使用運(yùn)算符時才執(zhí)行數(shù)字比較運(yùn)算。
  2. 在執(zhí)行數(shù)字比較運(yùn)算時,當(dāng)這個數(shù)字不是0時,檢查數(shù)字的第1個字符,如果不是0,即為10進(jìn)制;如果是0,則不是10進(jìn)制數(shù)字。然后檢查第2個字符,如果第2個字符是x(大小寫都可以),則為16進(jìn)制,如果不是,則認(rèn)為是8進(jìn)制數(shù)字。
  3. 當(dāng)一個數(shù)字構(gòu)成為非法時,執(zhí)行的是字符比較。例如:08小于1。因?yàn)椴淮嬖?8這個數(shù)字,即認(rèn)為08為字符,拆08的第一個字符0,與1比較,小于。參考下面示例4:

     

    ::示例4

    @echo off
    if 07 gtr 1 echo 07大于1(7大于1)
    if 08 lss 1 echo 08小于1(“0”小于1)
    if 09 lss 1 echo 09小于1(“0”小于1)
    if 010 gtr 1 echo 010大于1(8大于1)
    pause

 

3,比較運(yùn)算:

 

  1. 字母是可以比較運(yùn)算大小的。
  2. 數(shù)字比較運(yùn)算是不區(qū)分大小寫的(阿拉伯?dāng)?shù)字),而字母是區(qū)分大小寫的。所以,大小寫不同的字母,是不能直接比較運(yùn)算的,必須使用 /i來忽略。
  3. 字母比較運(yùn)算時,是從第一個字符開始,逐一進(jìn)行的。
  4. 特別注意,在字母與數(shù)字進(jìn)行混合比較運(yùn)算時,是按字符的方式比較的,即數(shù)字不是作為一個整體來看的,例如:a24小于a5。
  5. 特別注意,在字母與數(shù)字進(jìn)行混合比較運(yùn)算時,字母是大于數(shù)字的。
  6. 單純的數(shù)字比較運(yùn)算,是以他們對應(yīng)的數(shù)值來比較的。例如 0x12 、 022 和18都對應(yīng)18,所以他們相等。而字母,是按照字母順序進(jìn)行比較運(yùn)算的。例如:a小于b,而y大于或等于x。
  7. 比較運(yùn)算的符號,只能是 EQU、NEQ、LSS、LEQ、GTR、GEQ,不包括 == 。
  8. 漢字也是可以進(jìn)行比較運(yùn)算的,但其比較的是編碼順序。當(dāng)漢字與數(shù)字、字母混合比較時,比較的是編碼順序。但漢字的編碼順序永遠(yuǎn)高于字母,字母高于數(shù)字。 

 

4,英文引號下的比較運(yùn)算:

 

  純數(shù)字比較運(yùn)算,是不可以使用引號的,為什么?因?yàn)楫?dāng)使用了引號,即被引起來的就認(rèn)為是字符,而字符比較運(yùn)算的原則是從第一個字符開始,逐一比較。所以就可能出現(xiàn)19小于5的情況??匆韵率纠f明:

  1. 19 大于 5,因?yàn)闆]有使用引號,進(jìn)行數(shù)字比較。
  2. "19" 小于 5,19被引,所以拆19的第一個字符與5比較,小于。
  3. 19 大于 "5",19沒有被引,作為一個整體,與5比較,大于。
  4. "19" 小于 "5",都被引,比較第一個字符,1小于5。
  5. "0x12" 小于17,0x12被引,即不再是16進(jìn)制數(shù)字(對應(yīng)10進(jìn)制為18),而是作為字符比較。第一個字符0與17比較,小于。
  6. "022" 小于17,022被引,即不再是8進(jìn)制數(shù)字(對應(yīng)10進(jìn)制為18),而是作為字符比較。第一個字符0與17比較,小于。

參考下面的示例5:

 

::示例5

@echo off
if 19 gtr 5 echo 19 大于 5
if "19" lss 5 echo "19" 小于 5
if 19 gtr "5" echo 19 大于 "5"
if "19" lss "5" echo "19" 小于 "5"
if "0x12" lss 17 echo "0x12" 小于 17
if "022" lss 17 echo "022" 小于 17
pause

 

5,啟用延遲的環(huán)境變量擴(kuò)展:

 

  當(dāng)啟用延遲變量時,沒有被引號引起來動態(tài)擴(kuò)展變量中,如果含有空格()、英文逗號(,)、英文分號(;)、等號(=),需要使用轉(zhuǎn)義符(^)進(jìn)行操作,例如:

 

::示例6

@echo off&setlocalenabledelayedexpansion
for /l %%i in (1 1 9) do (set /aye=!random!%%4+1&set xing=
for /l %%k in (1 1 !ye!) do set xing=0!xing!
set han=!xing!%%i&set han=!han:~-6!
echo 原始:!han!
for /l %%k in (5 -1 1) do if !han:~0^,%%k! equ 0 sethan=!han:~%%k!
echo 處理:!han!)
pause

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Linux Bash Shell快速入門
《Linux操作系統(tǒng)》07Shell編程基礎(chǔ)
Linux下VIM編譯器的使用以及shell編程基礎(chǔ)
FOR的集與通配符上
第14章 JavaScript語言基礎(chǔ)-參考題
【Java基礎(chǔ) 2】Java 基礎(chǔ)語法
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服