1 شرائطی بیانات کا جائزہ
شرائطی بیانات پروگرامنگ میں منطقی دھارا کو کنٹرول کرنے کے اہم آلات ہیں۔ Golang میں، شرائطی بیانات دوسری پروگرامنگ زبانوں کی طرح ہیں لیکن ان کی اپنی خصوصیات ہیں۔ یہ ہمیں فیصلہ کرنے کی اجازت دیتے ہیں کہ کون سا کوڈ صحیح یا غلط حالت پر اجرا کرنا ہے، جس سے کوڈ کی استقامت اور نگرانی بڑھتی ہے۔
2 'اگر' بیان
2.1 'اگر' بیان کا بنیادی استعمال
if
بیان جو Golang کی عام شرائطی بیان ہے۔ اس کی سنٹیکس مندرجہ ذیل ہے:
if شرط {
// جب شرط صحیح ہوتی ہے تو ان کو چلایا جانے والا کوڈ
}
یہاں ایک سادہ مثال ہے:
package main
import "fmt"
func main() {
x := 10
if x > 5 {
fmt.Println("x 5 سے زیادہ ہے")
}
}
اس کوڈ میں چیک کیا جائے گا کہ کیا x
5 سے زیادہ ہے، اور اگر ہے تو یہ پرنٹ عمل کو انجام دے گا۔
2.2 شرائطی اظہارات
شرائطی اظہارات موازنہ کارکردگی آپریٹرز (مثلاً ==
, !=
, <
, >
, <=
, >=
) اور منطقی آپریٹرز (مثلاً &&
(AND)، ||
(OR)، !
(NOT)) سے مشتمل ہوتے ہیں۔
مثلاً، کسی متغیر کو ایک مخصوص رینج میں چیک کرنے کے لئے:
y := 20
if y >= 10 && y <= 30 {
fmt.Println("y 10 اور 30 کے درمیان ہے")
}
مندرجہ بالا شرائطی اظہار میں، منطقی آپریٹر &&
استعمال ہوتا ہے تاکہ y
کی قیمت 10 اور 30 کے درمیان ہو۔
2.3 اگر...ورنہ اور اگر ورنہ کی ساخت
'اگر' کی شرط پوری نہ ہونے کی صورت میں، ہم 'ورنہ' استعمال کر کے دوسرے کوڈ بلاک کو اجرا کر سکتے ہیں۔ 'ورنہ اگر' ہمیں مختلف شرائط دیکھنے کی اجازت دیتا ہے۔ یہاں ایک مثال ہے:
score := 88
if score >= 90 {
fmt.Println("شاندار")
} else if score >= 80 {
fmt.Println("اچھا")
} else if score >= 70 {
fmt.Println("اوسط")
} else {
fmt.Println("نیچے اوسط")
}
یہ کوڈ score
کی قیمت کے مطابق مختلف تشخیصات پرنٹ کرے گا۔
3 انتخابی بیان
3.1 انتخابی بیان کی بنیادی سنٹیکس
switch
بیان ایک مختصر شرائطی برانچ بیان ہے، خاص طور پر ان صورتوں کے لئے جہاں متعدد قیمتوں کا جائزہ لینا لازم ہوتا ہے۔ switch
بیان کی بنیادی سنٹیکس مندرجہ ذیل ہوتی ہے:
switch آئیکسپریشن {
case قیمت1:
// جب قیمت1 میں موزوں ہوتا ہے تو ان کو چلایا جانے والا کوڈ
case قیمت2:
// جب قیمت2 میں موزوں ہوتا ہے تو ان کو چلایا جانے والا کوڈ
default:
// ان کو چلایا جانے والا کوڈ ڈیفالٹ
}
اگر آئیکسپریشن
کی قیمت case
کے بعد کی قیمت سے موزوں ہوتی ہے تو متناظر کوڈ بلاک کو اجرا کیا جائے گا۔
3.2 انتخابی بیان فالتثرو
Golang کے switch
بیان میں، ہر برانچ بطور ڈیفالٹ فال نہیں گرتا ہے مگر جب تک fallthrough
کا استعمال نہ کیا جائے۔
switch num {
case 1:
fmt.Println("ایک")
fallthrough
case 2:
fmt.Println("دو")
default:
fmt.Println("نہ تو ایک ہے اور نہ ہی دو")
}
مندرجہ بالا کوڈ میں، اگر num
1 ہو تو، مساوی case 1
کے باوجود، fallthrough
کے وجہ سے پروگرام case 2
میں چل کر "دو" چھاپے گا۔
3.3 قسم کی برانچ اور اپنی مرضی کی برانچ
switch
بیان علاوہً متغیر کی قسم کی برانچنگ کو بھی دعم دیتا ہے، جسے قسم کی برانچنگ کہا جاتا ہے۔ علاوہ ازیں، ہم ضرورت کے مطابق مزید پیچیدہ اختیارات کی شرائط کے بنیاد پر بھی برانچ بنا سکتے ہیں۔
قسم کی برانچنگ کا مثال:
var i interface{} = 1
switch i.(type) {
case int:
fmt.Println("i ایک مکمل عدد ہے")
case float64:
fmt.Println("i ایک فلوٹ64 ہے")
default:
fmt.Println("i کسی دوسری قسم کا ہے")
}
ضرورت کے مطابق مزید پیچیدہ شرائط کی شخصی برانچنگ کو لکھ کر تیار کیا جا سکتا ہے۔
4 عملی مشق
اس حصے میں، ہم شرائطی بیانات کو واقعی مثالوں کے ذریعے استعمال و فہم میں مزید توسیع دیں گے۔ عملی پروگرامنگ چیلنجز کے ذریعے، آپ کو 'اگر' اور 'انتخابی' بیانات کو استعمال کر کے حقیقی دنیا کے مسائل حل کرنے میں مہارت حاصل ہوگا۔
گریڈ کیلکولیٹر
چلو، ہم ایک سادہ گریڈ کیلکولیٹر لکھتے ہیں۔ یہ پروگرام صارف کی درج کردہ اسکور پر مبنی گریڈ تعین کرے گا اور اسے آؤٹ پٹ کرے گا۔ گریڈنگ کی معیار یہ ہیں:
- 90 یا اس سے زیادہ کے نمبروں کے لئے A
- 80 تا 89 کے نمبروں کے لئے B
- 70 تا 79 کے نمبروں کے لئے C
- 60 تا 69 کے نمبروں کے لئے D
- 60 سے کم نمبروں کے لئے F
ہم اس فعالیت کو پورا کرنے کے لئے if
یا switch
اسٹیٹمنٹ استعمال کرسکتے ہیں۔ پہلے، ہم ایک if
اسٹیٹمنٹ کا استعمال کرتے ہوئے ایک مثال دیکھتے ہیں:
package main
import (
"fmt"
)
func main() {
var score int
fmt.Print("براہ کرم نمبر درج کریں: ")
fmt.Scan(&score)
if score >= 90 {
fmt.Println("گریڈ: A")
} else if score >= 80 {
fmt.Println("گریڈ: B")
} else if score >= 70 {
fmt.Println("گریڈ: C")
} else if score >= 60 {
fmt.Println("گریڈ: D")
} else {
fmt.Println("گریڈ: F")
}
}
اس کوڈ میں ہم پہلے score
متغیر کا اعلان کرتے ہیں تاکہ صارف کا درج کردہ اسکور رکھا جا سکے۔ ہم صارف کی ان پٹ حاصل کرنے کیلئے fmt.Scan
فنکشن استعمال کرتے ہیں۔ پھر ہم کئی if
اور else if
اسٹیٹمنٹس استعمال کرتے ہیں تاکہ نمبر کے لئے مطابقتی گریڈ تعین ہو۔
اب، ہم یک مثال دیکھتے ہیں جو switch
اسٹیٹمنٹ کا استعمال کرتی ہے:
package main
import (
"fmt"
)
func main() {
var score int
fmt.Print("براہ کرم نمبر درج کریں: ")
fmt.Scan(&score)
switch {
case score >= 90:
fmt.Println("گریڈ: A")
case score >= 80:
fmt.Println("گریڈ: B")
case score >= 70:
fmt.Println("گریڈ: C")
case score >= 60:
fmt.Println("گریڈ: D")
default:
fmt.Println("گریڈ: F")
}
}
switch
اسٹیٹمنٹ استعمال کرنے والے مثال میں، کوڈ کا ساخت ساکٹ اور صاف ہے۔ ہمیں بہت سارے متواتر if
اور else if
اسٹیٹمنٹس کا استعمال نہیں کرنا پڑتا؛ بلکہ ہم ہر case
کے بعد کنڈیشن کو سیدھے پانچی کرتے ہیں۔ اگر پچھلے case
کی کنڈیشن سے میل نہ کھاتا ہے تو وہ خود بخود اگلے case
پر چلا جائے گا جب تک کے وہ مناسب شرط کو میچ نہیں کرلیتا ہے یا پھر default
کیس تک پہنچتا ہے، جو F
گریڈ پر اٹھا کر دیتا ہے۔
اب جب آپ نے بھی سکھ لیا ہے کہ آپ if
اور switch
کا استعمال کر کے کنڈیشنل اسٹیٹمنٹس کو استعمال کرسکتے ہیں، ہم آپ کو آپ کی اپنی پروگرام لکھنے کی مشق اور مزید فہم حاصل کرنے کی تجاویز دیتے ہیں۔
اگلے حصے میں، ہم آپ کو عملی مشکلات کو مضبوط کرنے کے لئے مزید پرنکشش کرنے کے لئے دوسرے مسائل پیش کریں گے۔
براہ کرم نوٹ کریں کہ اوپر دیا گیا کوڈ تعلیمی مقاصد کے لئے ہے۔ واقعی استعمال میں، صارف کے تعامل اور خطا سہارا کے عوامل کو مد نظر رکھنا چاہیے تاکہ یہ مضبوط ہو۔