منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : خطأ في كتابة كود IF
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته

اخواني الكرام قمت بكتابة كود IF  لكن يظهر لي خطأ عند التشغيل ولا ادري ماسبب هذا الخطأ

هذا هو الكود

كود :
Dim grd As Double = CDbl(txtGrade.Text)

       If grd >= 50 And grd <= 59 Then
           txtLetters.Text = "مقبول"

       ElseIf grd >= 60 And grd <= 69 = Then
           txtLetters.Text = "متوسط"

       ElseIf grd >= 70 And grd <= 79 = Then
           txtLetters.Text = "جيد"

       ElseIf grd >= 80 And grd <= 89 = Then
           txtLetters.Text = "جيد جداً"

       ElseIf grd >= 90 And grd <= 99 = Then
           txtLetters.Text = "ممتاز"
       Else
 txtLetters.Text = "راسب"

       End If

كما ترون قمت اولاً بتعريف متغير باسم grd

والخطأ الذي يظهر لي هو  Expression expected ويشير الى الأسطر التي مكتوب فيها Elseif
(25-10-17, 06:39 PM)عمرو المطري كتب : [ -> ]
السلام عليكم ورحمة الله وبركاته

اخواني الكرام قمت بكتابة كود IF  لكن يظهر لي خطأ عند التشغيل ولا ادري ماسبب هذا الخطأ

هذا هو الكود

كود :
Dim grd As Double = CDbl(txtGrade.Text)

       If grd >= 50 And grd <= 59 Then
           txtLetters.Text = "مقبول"

       ElseIf grd >= 60 And grd <= 69 = Then
           txtLetters.Text = "متوسط"

       ElseIf grd >= 70 And grd <= 79 = Then
           txtLetters.Text = "جيد"

       ElseIf grd >= 80 And grd <= 89 = Then
           txtLetters.Text = "جيد جداً"

       ElseIf grd >= 90 And grd <= 99 = Then
           txtLetters.Text = "ممتاز"
       Else
 txtLetters.Text = "راسب"

       End If

كما ترون قمت اولاً بتعريف متغير باسم grd

والخطأ الذي يظهر لي هو  Expression expected ويشير الى الأسطر التي مكتوب فيها Elseif


صديقي انت تضع اشاره = اضافيه هذا خطائك

كود :
Dim grd As Double = CDbl(txtGrade.Text)

      If grd >= 50 And grd <= 59 Then
          txtLetters.Text = "مقبول"

      ElseIf grd >= 60 And grd <= 69 Then
          txtLetters.Text = "متوسط"

      ElseIf grd >= 70 And grd <= 79 Then
          txtLetters.Text = "جيد"

      ElseIf grd >= 80 And grd <= 89 Then
          txtLetters.Text = "جيد جداً"

      ElseIf grd >= 90 And grd <= 99 Then
          txtLetters.Text = "ممتاز"
      Else
txtLetters.Text = "راسب"

      End If
(25-10-17, 06:46 PM)Rabeea Qbaha كتب : [ -> ]
(25-10-17, 06:39 PM)عمرو المطري كتب : [ -> ]
السلام عليكم ورحمة الله وبركاته

اخواني الكرام قمت بكتابة كود IF  لكن يظهر لي خطأ عند التشغيل ولا ادري ماسبب هذا الخطأ

هذا هو الكود

كود :
Dim grd As Double = CDbl(txtGrade.Text)

       If grd >= 50 And grd <= 59 Then
           txtLetters.Text = "مقبول"

       ElseIf grd >= 60 And grd <= 69 = Then
           txtLetters.Text = "متوسط"

       ElseIf grd >= 70 And grd <= 79 = Then
           txtLetters.Text = "جيد"

       ElseIf grd >= 80 And grd <= 89 = Then
           txtLetters.Text = "جيد جداً"

       ElseIf grd >= 90 And grd <= 99 = Then
           txtLetters.Text = "ممتاز"
       Else
 txtLetters.Text = "راسب"

       End If

كما ترون قمت اولاً بتعريف متغير باسم grd

والخطأ الذي يظهر لي هو  Expression expected ويشير الى الأسطر التي مكتوب فيها Elseif


صديقي انت تضع اشاره = اضافيه هذا خطائك

كود :
Dim grd As Double = CDbl(txtGrade.Text)

      If grd >= 50 And grd <= 59 Then
          txtLetters.Text = "مقبول"

      ElseIf grd >= 60 And grd <= 69 Then
          txtLetters.Text = "متوسط"

      ElseIf grd >= 70 And grd <= 79 Then
          txtLetters.Text = "جيد"

      ElseIf grd >= 80 And grd <= 89 Then
          txtLetters.Text = "جيد جداً"

      ElseIf grd >= 90 And grd <= 99 Then
          txtLetters.Text = "ممتاز"
      Else
txtLetters.Text = "راسب"

      End If
صحيح اخي العزيز ما انتبهت واشكرك على التوضيح
هناك خطأ منطقي في الكود وهو إذا حصل على 100 سيعتبر راسب

يعني لازم تحدف And grd <= 99 الأخيرة فيكون
كود :
ElseIf grd >= 90 Then
(25-10-17, 07:05 PM)zaer كتب : [ -> ]هناك خطأ منطقي في الكود وهو إذا حصل على 100 سيعتبر  راسب

يعني لازم تحدف  And grd <= 99  الأخيرة فيكون
كود :
ElseIf grd >= 90 Then

صحيح اخي الكريم واشكرك على التوضيح , سأقوم بتعديله الى 


كود :
ElseIf grd >= 90 And grd <= 100 Then
           txtLetters.Text = "ممتاز"


بحيث لو حصل على 100 درجة تكون نتيجته ( ممتاز )
اذا كان هناك جزء من الدرجة من بعد التسعة سيعتبر راسب مثل 59.5 أو69.5 أو79.5 أو89.5

للخروج من هذه المشكلة استخدم هذا الكود كما هو بدون زيادة (يعني لا تضع 100 => grd)
كود :
Dim grd As Double = CDbl(txtGrade.Text)
If grd < 50 Then txtLetters.Text = "راسب"
If grd >= 50 And grd < 60 Then txtLetters.Text = "مقبول"
If grd >= 60 And grd < 70 Then txtLetters.Text = "متوسط"
If grd >= 70 And grd < 80 Then txtLetters.Text = "جيد"
If grd >= 80 And grd < 90 Then txtLetters.Text = "جيد جداً"
If grd >= 90 Then txtLetters.Text = "ممتاز"
(26-10-17, 01:09 AM)zaer كتب : [ -> ]اذا كان هناك جزء من الدرجة من بعد التسعة سيعتبر راسب مثل 59.5 أو69.5 أو79.5 أو89.5

للخروج من هذه المشكلة استخدم هذا الكود كما هو بدون زيادة (يعني لا تضع 100 => grd)
كود :
Dim grd As Double = CDbl(txtGrade.Text)
If grd < 50 Then txtLetters.Text = "راسب"
If grd >= 50 And grd < 60 Then txtLetters.Text = "مقبول"
If grd >= 60 And grd < 70 Then txtLetters.Text = "متوسط"
If grd >= 70 And grd < 80 Then txtLetters.Text = "جيد"
If grd >= 80 And grd < 90 Then txtLetters.Text = "جيد جداً"
If grd >= 90 Then txtLetters.Text = "ممتاز"

مشكور اخي الغالي على التوضيح ^_^