2017-08-03 37 views
0

我是VBScript的新手,並且我瞭解到VBScript沒有return,並且要返回值,請將該值指定給過程的名稱。 當我正在研究如何返回一個值時,我發現兩個不同的程序都返回一個值,我不確定它們有什麼區別。「退出函數」的必要性

Function Test1() 
    Dim value 
    'Do something' 
    If value < 10 Then 
     Test1 = value * 2 
    Else 
     Test1 = value 
    End If 
End Function 

Function Test2() 
    Dim value 
    'Do something' 
    If value < 10 Then 
     Test2 = value * 2 
     Exit Function 
    Else 
     Test2 = value 
     Exit Function 
    End If 
End Function 

它立刻好像Exit Function退出此程序時,這個程序涉及到這一行,但什麼是這行代碼的必要性? 我一直在學習其他主要的編程語言,如C#,Java等,並且在那些編程語言中,一旦程序到達線returnreturn something,程序將退出該函數/方法,即使此後有模式代碼。

這是否意味着,在VBScript中,爲其自己的過程的名稱指定一個值作爲return,但它仍然保持不變,直到過程結束,除非您使用Exit Function

+3

您通常使用退出功能,並且您希望停止處理該功能的其餘部分。您提供的示例不需要退出功能,並且不必要和冗餘 – Sorceri

+0

因此,爲其自己的過程的名稱賦值並不像退出其他主要編程語言那樣退出過程? – JessicaD

+1

更正它不會退出該函數並且只分配返回值。 – Sorceri

回答

1

指定函數的返回值並返回給調用者(通過到達函數的主體或顯式語句的末尾)顯然是不同的東西。能夠同時表達清楚是親:

>> Function preinc(ByRef i) : i = i + 1 : preinc = i : End Function 
>> Function postinc(ByRef i) : postinc = i : i = i + 1 : End Function 
>> i = 0 
>> WScript.Echo i 
>> WScript.Echo preinc(i), i 
>> WScript.Echo postinc(i), i 
>> 
0 
1 1 
1 2 

,結合設定值和離開功能(return(x),返回「最後」的表達式的值)的語言,不要讓你的工作或清理(參見here)確定返回值後。