2016-07-02 12 views
1

私は最近、たとえばInput1 Mod Input2を示すVB.NETのプログラムをコーディングしました。ここで私は、関数を使用します。実行中のコードを停止する関数

Private Function remainder(intno1 As Integer, intno2 As Integer) As Integer 

    Dim intresult As Integer 
    intresult = intno1 Mod intno2 
    remainder = intresult 

End Function 

は、私はButton_Clickイベントでそれを呼ばれる:あなたはこのコードを見ることができるよう

Dim intm As Integer, intn As Integer 
    Dim intmod As Integer 
    intm = Val(TextBox1.Text) 
    intn = Val(TextBox2.Text) 

    If TextBox1.Text >= TextBox2.Text Then 
     MsgBox("Error while computing proccess ! Please try Again.", vbOKOnly + vbCritical, "Error!") 
     **Stop statement** 
    End If 
    intmod = remainder(intm, intn) 
    RichTextBox1.Text = "The result is " & Str(intmod) 

は、私が使用してif文TXT1が大きいですかTXT2、メッセージボックスショーに等しいです。 end If節の前にコード実行を停止する文を使いたい。私は、これらのプロセスをFunctionでやめることをやめます。

私はStopEndステートメントを使用しますが、プログラムをデバッグした後、プログラムは応答を停止するか、プログラムを終了します。

私はここで正確に何をすべきですか?

+2

'Return'または' Exit Sub' – Plutonix

+1

これで答えの1つの隣にあるチェックマークをクリックすると、未回答リストから移動します。 – Plutonix

+0

私のために戻る作品。質問はそれが他の声明のための自作として戻るのですか?私はそれが関数や何のために役に立つのかを意味します。 – SPi01

答えて

1

Exit Sub 

それとも

Return 

簡単な使用方法を終了するには、次のいずれかをお試しください:

Dim intm As Integer, intn As Integer 
Dim intmod As Integer 
intm = Val(TextBox1.Text) 
intn = Val(TextBox2.Text) 

If TextBox1.Text >= TextBox2.Text Then 
    MsgBox("Error while computing proccess ! Please try Again.", vbOKOnly + vbCritical, "Error!") 
    Exit Sub 
End If 

intmod = remainder(intm, intn) 
RichTextBox1.Text = "The result is " & Str(intmod) 
+0

から戻り値を返します。とにかくありがとう ! – SPi01

1

あなたは右がそのルーチンの実行を停止するExit Subコールを使用します。 Exit Function

ご存知のように、Valではなく、Valを使用して強制的に整数にする必要があります。メッセージが役立つはずです(コンピューティング時のエラー)。 「最初の整数は2番目より小さくなければなりません」という行に沿ったものは、ユーザーにとってより便利です。

0

戻り値のない関数を終了する場合は、ソフトウェアの失敗を示し、責任ある呼び出し元コードに「いつも通りのビジネス」の印象を与えてはなりません。あなたは例外投げる必要がある。このため

:入力テキストボックスが期待に対応していないときに、この場合の

Throw New Exception("Error while computing proccess ! Please try Again.") 

例外のは、それはおそらくコマンド驚きではありませんが実行されますが誤ってinadvertentlyexecuted。 この場合、エラーをスローする理由はありませんが、関数本体ではなく、コード・コーラーですでに実行されている実行機能が妨げられています。

関連する問題