النطاق

الحدود او النطاق من المسمى نعلم او نفهم ان لها قيمة بداية وقيمة نهاية محدودة وبداخلها ارقام او حروف الخ .

أولا :النطاق :-

يعبر عن الأرقام مثلا الواقعة بين ١ إلى ١٠ أو الأحرف من أ إلى ي ، أي انه مجموعة قيم متسلسلة لها قيمة بداية ولها نهاية ، في تعبيراتنا البرمجية نحتاجها فهي توفر الوقت وتعتبر تعبير ممتاز وسريع .

أمثلة :

لطباعة الأرقام الزوجية من ١ إلى ٢٠ :

var evenNumbers=1..20
for(i in evenNumbers){
     if(i%2==0)
     {
         println(i)
     }
 }
output : 2 4 6 8 10 ..20

البحث عن قيمة ما إذا كانت موجودة في هذا النطاق ام لا :

var evenNumbers = 1..20
var i = 30
 if (i in evenNumbers) {
     println("the value in the range")
 } else {
     println("not found")
 }
not found

تطبيق نفس المثال على السلاسل النصية :

var word:String="Hello , My name is Ahmed"

   var letter:Char='b'
   if(letter in word){
       println("the value in the word")
   } else {
       println("not found")
   }
not found

ثانيا: القفزة أو step :-

القفزة هو بمعنى يكون لدي نطاق ولكن اريد عناصر معينة تبعد عن بعضها بمسافة ثابته ، بمعنى أخر نعلم أن الأرقام الزوجية تبعد عن بعضها رقمين فعندما اعمل قفز في النطاق استطيع الوصول إليه.

var numbers= 2..20
 for(i in numbers step 2){
      println(i)
 }
output : 2 4 6 8 10 ..20

ثالثا: التعامل مع النطاق :-

downTo : 

لطباعة عناصر المصفوفة تنازليا ، مثال :

for (i in 10 downTo 0){
     println(i)
 }

until : 

لطباعة العناصر تصاعديا ، مثال :

for (i in 1 until 10){
     println(i)
 }

هنا يبدأ يطبع من رقم ١ ويتوقف عند ٩ ، وذلك لأن until تعني حتى أي كآننا نقول حتى ترى ١٠ فتوقف لو أردنا طباعة الرقم ١٠ فسنجعل الرقم ينتهي عند ١١

دالة جاهزة لو اردنا البحث بداخل النطاق و والقيمة العائدة من البحث منطقية ، مثال :

var letter="A".."Z"

  println(letter.contains("D"))

contains

دالة للتحقق هل النطاق خالي ام لا والقيمة العائدة منطقية ، مثال :

var letter="A".."Z"

  println(letter.isEmpty())

isEmpty

تقوم بطباعة العنصر الذي يبدأ فيه النطاق “نقط؛ البداية”، مثال :

var letter="A".."Z"

  println(letter.start)

start

طباعة اخر عنصر ينتهي عنده النطاق “نقط؛ النهاية”،مثال :

var letter="A".."Z"

  println(letter.endInclusive)

endInclusive

الترميز الخاص بالنطاق نفسه ، مثال :

var letter="A".."Z"

  println(letter.hashCode())

hashCode

للتحقق من مطابقة القيم ، مثال :

var letter="A".."Z"
var newLetter="A".."Z"
 
println(letter.equals(newLetter))

هنا عرفنا متغير اخر له نفس النطاق ، وقمنا بالاختبار هل هم متساويان ام لا .

equals

لطباعة عناصر المصفوفة تنازليا ، مثال :

for (i in 10 downTo 0){
    println(i)
}

downTo

لطباعة العناصر تصاعديا ، مثال :

for (i in 1 until 10){
    println(i)
}

هنا يبدأ يطبع من رقم ١ ويتوقف عند ٩ ، وذلك لأن until تعني حتى أي كآننا نقول حتى ترى ١٠ فتوقف لو أردنا طباعة الرقم ١٠ فسنجعل الرقم ينتهي عند ١١

until

Was this page helpful?

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *