PDA

View Full Version : مشکل ELSE IF



pedramonline
یک شنبه 18 بهمن 1383, 13:33 عصر
سلام
اولا من تازه کارم پس کسی نیاد به سوال من بخنده که من به مدیر انجمن شکایت خودمو ابلاع میکنم


آقا من هر کاری میکنم نمیدونم چرا vb از دستورات زیر ایراد میگیره

Dim n As Integer
Private Sub Command1_Click()
n = Val(Text1.Text)
If n < 0 Then Label1.Caption = " Number Is Negative "
ElseIf n > 0 Then Label1.Caption = " Number Is Positivve "
ElseIf n = 0 Then Label1.Caption = " This Is ZERO "
End If
End If
Text1.Text = ""
End Sub



Private Sub Form_Load()
Text1.Text = ""
Label1.Caption = ""
Label1.AutoSize = True
End Sub



Private Sub Form_Load()
Text1.Text = ""
Label1.Caption = ""
Label1.AutoSize = True
End Sub

همش میگه block دستور else if شما غلطه :sad2:
کمک

coral
یک شنبه 18 بهمن 1383, 13:38 عصر
جناب پدرام خان تازه کار شما یکی از اون end if ها را پاک کن ببین درست میشه ؟

R_BABAZADEH
یک شنبه 18 بهمن 1383, 14:09 عصر
دوست عزیز مشگل شما از طریق برنامه زیر حل می شود
Dim n As Integer
Private Sub Command1_Click()
n = Val(Text1.Text)
If n < 0 Then Label1.Caption = " Number Is Negative "
If Not n > 0 Then Label1.Caption = " Number Is Positivve "
If Not n = 0 Then Label1.Caption = " This Is ZERO "

Text1.Text = ""
End Sub



Private Sub Form_Load()
Text1.Text = ""
Label1.Caption = ""
Label1.AutoSize = True
End Sub


در ضمن دستور if اگر در یک خط نوشته شود end if نیاز ندارد

pedramonline
یک شنبه 18 بهمن 1383, 14:11 عصر
جناب پدرام خان تازه کار :kaf:

بابا خوب شد گفتم متلک نپرونید وگرنه به جای این حرف بدوبیراه نصیبم میکردی


بازم نشد
این خطا رو میده

http://img103.exs.cx/img103/1454/error4xs.jpg

pedramonline
یک شنبه 18 بهمن 1383, 14:21 عصر
دوست عزیز مشگل شما از طریق برنامه زیر حل می شود
Dim n As Integer
Private Sub Command1_Click()
n = Val(Text1.Text)
If n < 0 Then Label1.Caption = " Number Is Negative "
If Not n > 0 Then Label1.Caption = " Number Is Positivve "
If Not n = 0 Then Label1.Caption = " This Is ZERO "

Text1.Text = ""
End Sub

Private Sub Form_Load()
Text1.Text = ""
Label1.Caption = ""
Label1.AutoSize = True
End Sub


در ضمن دستور if اگر در یک خط نوشته شود end if نیاز ندارد

دوست عزیز سلام
وقتیدستورات شما شما رو مینویسم هیچ خطایی گرفته نمیشه
اما
هر عددی وارد بشه
چه مثبت و چه منفی
مینویسه
THIS IS ZERO

پس در نتیجه
1) کد شما هم متاسفانه غلطه ! :kaf:
2) منظور از IF NOT چی هست ؟ :wink:

pedramonline
یک شنبه 18 بهمن 1383, 14:25 عصر
کـــــــــــــــــــــــم کــــــــــــــــــــــــ م کنیــــــــــــــــــــــ ـــــــــــــــــــــــــ د ؟

حامد مصافی
یک شنبه 18 بهمن 1383, 16:25 عصر
سلام ساختار یک If بلوکی به این صورته :


If Statement Then
' Command(s)
Else
' Command(s)
End If

اگه تصمیم دارین از ساختار بلوکی استفاده کنین بعد از Then دستورات رو ننویسین

Morteza Manafpour
یک شنبه 18 بهمن 1383, 19:28 عصر
شما می‌تونید از select case هم استفاده کنید

select case n
n>0:کدمربوطه
n<0:کد مربوطه
0:کد مربوطه
end select

Morteza Manafpour
یک شنبه 18 بهمن 1383, 19:28 عصر
شما می‌تونید از select case هم استفاده کنید

select case n
n>0:کدمربوطه
n<0:کد مربوطه
0:کد مربوطه
end select

R_BABAZADEH
یک شنبه 18 بهمن 1383, 21:13 عصر
Dim n As Integer
Private Sub Command1_Click()
n = Val(Text1.Text)
If n < 0 Then Label1.Caption = " Number Is Negative "
If n > 0 Then Label1.Caption = " Number Is Positivve "
If n = 0 Then Label1.Caption = " This Is ZERO "

Text1.Text = ""
End Sub

Private Sub Form_Load()
Text1.Text = ""
Label1.Caption = ""
Label1.AutoSize = True
End Sub

R_BABAZADEH
یک شنبه 18 بهمن 1383, 21:35 عصر
ببین دوست عزیز if یک دستور شرطی است و به طور معمول از اجزا زیر تشکیل شده
1.کلمه if
2. شرط مورد نظر
3.کلمه then
4. دستوراتی که باید در صورت درست بودن شرط اجراشود
5.نقیض شرط در صورت نیاز که با کلمه else مشخص می شود
6.دستوراتی که باید در صورت درست نبودن شرط اجراشود
7.کلمه پایانی شرط end if


if a=1 then
a=a+10
b=b+20
else
a=a-10
b=b-10
end if


قسمت else تا end if اختیاری است و می توانید استفاده نکنید

حالا اگر دستورات اجرایی شما تک دستوره است می توانید همه شرط را در یک خط بنویسید و دیگر نیازی به end if نیست
if a=1 then b=b+10 else c=c+10
در این حالت نیز else به بعد اختیاری است

امید وارم کمکی کرده باشم :D

R_BABAZADEH
یک شنبه 18 بهمن 1383, 21:47 عصر
در ضمن if not در مواقعی استفاده می شود که نقیض شرط مورد نظر باشد نه صحت ان

pedramonline
دوشنبه 19 بهمن 1383, 02:28 صبح
Dim n As Integer
Private Sub Command1_Click()
n = Val(Text1.Text)
If n < 0 Then Label1.Caption = " Number Is Negative "
If n > 0 Then Label1.Caption = " Number Is Positivve "
If n = 0 Then Label1.Caption = " This Is ZERO "

Text1.Text = ""
End Sub

Private Sub Form_Load()
Text1.Text = ""
Label1.Caption = ""
Label1.AutoSize = True
End Sub

سلام
عزیز من اینو قبلا انجام دادم و درسته
اما من میخوام بدونم چرا از ELSE IF ایراد میگیره

pedramonline
دوشنبه 19 بهمن 1383, 02:49 صبح
در ضمن if not در مواقعی استفاده می شود که نقیض شرط مورد نظر باشد نه صحت ان

میشه در این رایطه مثالی بزنید
خیلی ممنون از توجهتون :موفق:

sadegi
دوشنبه 19 بهمن 1383, 10:17 صبح
Dim n As Integer
Private Sub Command1_Click()
n = Val(Text1.Text)
If n < 0 Then Label1.Caption = " Number Is Negative "
ElseIf n > 0 Then Label1.Caption = " Number Is Positivve "
ElseIf n = 0 Then Label1.Caption = " This Is ZERO "
End If
End If
Text1.Text = ""
End Sub
عزیز شما از دو تا end if استفاده کردین
یکی از اونها رو پاک کنین درست میشه

sadegi
دوشنبه 19 بهمن 1383, 10:23 صبح
Dim n As Integer
Private Sub Command1_Click()
n = Val(Text1.Text)
If n < 0 Then Label1.Caption = " Number Is Negative "
ElseIf n > 0 Then Label1.Caption = " Number Is Positivve "
Else n = 0 Then Label1.Caption = " This Is ZERO
End If
Text1.Text = ""
End Sub



Private Sub Form_Load()
Text1.Text = ""
Label1.Caption = ""
Label1.AutoSize = True
End Sub
:flower: فکر کنم اینجوری درست میشه

pedramonline
دوشنبه 19 بهمن 1383, 22:56 عصر
شما می‌تونید از select case هم استفاده کنید

select case n
n>0:کدمربوطه
n<0:کد مربوطه
0:کد مربوطه
end select

سلام

دوستان مشکل من در else if حل شد
حالا بتون بگم مشکل چی بود خنده تون میگیره

من بعد از then دکمه enter رو نمیزدم و به سطر بعدی نمیرفتم
واسه همین ایراد میگیرفت
نمیدونستم vb اینقدر سیریش و گیر هست . ( حیف که میخوام یادش بگیرم وگرنه میگفتم vb حالم ازت به هم میخوره :sorry: )

و اما مشکــــــــــــــــــــــ ل دوم :
امیدوارم از دست سوالات من خسته نشده باشید

من میخوام طبق گفته دوستمون از ساختار select case استفاده کنم اما ایراد زیر رو میگیره

http://img165.exs.cx/img165/6071/selectcaseerror1vs.jpg

حالا خواهش من اینه که توی این مورد کمکم کنید
thX a lot

ساران سافت
دوشنبه 19 بهمن 1383, 23:11 عصر
از دستور سلکت کیس به این شکل استفاده کن :


Select case n
case n<0
Lable1.capton="Neg."
case n>0
lable1.caption="Pos."
case else
lable1.caption="Zero"
end select

:wink: :موفق:

حامد مصافی
دوشنبه 19 بهمن 1383, 23:58 عصر
دوستان مشکل من در else if حل شد
حالا بتون بگم مشکل چی بود خنده تون میگیره

من بعد از then دکمه enter رو نمیزدم و به سطر بعدی نمیرفتم
واسه همین ایراد میگیرفت

:موفق:


من که همون اول اینو گفتم


گه تصمیم دارین از ساختار بلوکی استفاده کنین بعد از Then دستورات رو ننویسین

pedramonline
سه شنبه 20 بهمن 1383, 01:48 صبح
Private Sub Command1_Click()
n = Val(Text1.Text)
Select Case n
Case n > 0
Label1.Caption = " positive"
Case n < 0
Label1.Caption = "negative"
Case Else
Label1.Caption = "Zero"
End Select
End Sub

Private Sub Form_Load()
Text1.Text = ""
Label1.Caption = ""
Label1.AutoSize = True
End Sub

دوست عزیز من از حلقه شما که به نظر میاد درسته مثل بالا کدنویسی کردم
اما وقتی برنامه رو اجرا میکنم هیچ پیغامی در label نوشته نمیشه
میدونید مشکل از کجاست ؟

حامد مصافی
سه شنبه 20 بهمن 1383, 02:29 صبح
این شاید بهتر باشه


Private Sub Command1_Click()
n = Val(Text1)
Select Case n
Case Is > 0:
Label1 = " positive"
Case Is < 0:
Label1 = "negative"
Case Else:
Label1 = "Zero"
End Select
End Sub

Private Sub Form_Load()
Text1.Text = ""
Label1.Caption = ""
Label1.AutoSize = True
End Sub

Behrouz_Rad
سه شنبه 20 بهمن 1383, 06:49 صبح
ببین پدرام جان چرا اینقدر بچه های بخش رو اذیت می کنی.
آقا جون چرا پاسکال رو با VB قاطی کردی.
1 ساعت پای تلفن بهت توضیح دادم بازم متوجه نشدی. ای بابااااااااااااا.
شما همون فلش رو با Action Script کار کنی به جون خودم و کامران کمایی (دوست جون جونیه مهدی کرامتی) موفق تری هاااااااااااااااا.
:wise1:

ساران سافت
سه شنبه 20 بهمن 1383, 10:15 صبح
این نمونه کدو ببین :oops:

pedramonline
سه شنبه 20 بهمن 1383, 13:07 عصر
ببین پدرام جان چرا اینقدر بچه های بخش رو اذیت می کنی.
آقا جون چرا پاسکال رو با VB قاطی کردی.
1 ساعت پای تلفن بهت توضیح دادم بازم متوجه نشدی. ای بابااااااااااااا.
شما همون فلش رو با Action Script کار کنی به جون خودم و کامران کمایی (دوست جون جونیه مهدی کرامتی) موفق تری هاااااااااااااااا.
:wise1:

به به آقا بهروز
بالاخرو اومدی قربوت بشم
میبینم که کولاک کردی تو انجمن
فقط جواب دوستتو نمیدی :(
باشه نده من ناراحت نمیشم :( :kaf:
اتفاقا کامران دیشب پیشم بود
شکایت وحید نصیری هم پیشش کردم :kaf:
( شوحی کردم اقای نصیری )
actin هم کار میکنم
ولی میخوام اینم یاد بگیرم

pedramonline
چهارشنبه 21 بهمن 1383, 14:39 عصر
سلام BlackDal
ساختار شما درست و کاملا جواب داد

حالا میخوام بدونم چه فرقی با ساختار قبلی داشت که اون ساختار درست نبود ???

جوابمو بدی ها
من به کمک شما ها نیازمندم :wise1:

راستی افت هم به خاطر کدی که upload کرده بود تشکر میکنم
چون جواب داد :oops:

حامد مصافی
پنج شنبه 22 بهمن 1383, 01:53 صبح
سلام پدرام خان

در ساختار Case شرط مقابل در Case با متغیر اعلام شده به Select مقایسه میشه ؛ یعنی در مثالی که شما نوشته بودین وی بی این Case زیر رو


Select Case n
Case n > 0:

این طور تفسیر می کرد


If n = n < 0 Then


که مطابق خواسته شما نبود . احتمالاً شما فکر کردین شروط جلوی Case شرط های مستقل هستند در هنگام نوشتن Case می تونین با سه روش شرط جلوی هر Case رو اعلام کنین
اول:
یک مقدار مطلق بنویسید مثل


Case 2:

روش دوم:
یک شرط بنویسید . توجه کنید که به جای آرگومان Select Case باید از Is استفاده کنین ( مثل همون کدی که من نوشتم ) مثال :



Case Is < 100 :

و روش سوم :
یک محدوده اعلام کنید . مثال


Case 1 to 10:

در مثال بالایی اکه مقدار متغیر اعلام شده به Select Caseُ بین 1 و 10 باشه دستورات این Case اجرا میشه

pedramonline
پنج شنبه 22 بهمن 1383, 02:50 صبح
سیاه دل از آموزشت ممنون
دوستان من به جواب هام در این تاپیک رسیدم ( به لطف همه دوستان )
برای کمک به من
http://www.barnamenevis.org/forum/viewtopic.php?p=107267#107267
ممنون