0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)
Scala دستورات break و continue ندارد، معادل این دستورات در این زبان چیست؟
قبل توسط (1.9هزار امتیاز)
+1
فکر می کنم باید این کتابخانه را util.control.Breaks در بالای کد اضافه کنید اون وقت میشه با بلاک Breakable پیاده سازی کرد فکر می کنم
قبل توسط (1.1هزار امتیاز)
لطفا نظر خود را کاملتر در قالب جواب بدهید.

2 پاسخ

+1 امتیاز
قبل توسط (1.9هزار امتیاز)
انتخاب شده قبل توسط
 
بهترین پاسخ

می توان با دستور Break دستور continue را پیاده سازی کرد.
با قرار دادن این package (util.control.Breaks) برای پیاده سازی Break, continue صورت می گیرد .

breakable {
  for (i <- 1 to 10) {
    println(i)
    if (i > 4) break  // Kharej Shodan Az 'Loop FOR'
  }
}

خوب معنای کد بالا :

وقتی IF, True شد متد break انجام می شود و خارج از حلقه می شود یک exception انجام می شود و آن توسط بلاک breakable گرفته می شود و کد بعد از breakable به کار خودش ادامه می دهد.

مثال continue :

val searchMe = "Die For SomeThing Or Live For Nothing :))"
var numPs = 0
for (i <- 0 until searchMe.length) {
  breakable {
    if (searchMe.charAt(i) != 'D') {
      break  // Az Block Breakable Kharej mishavad, va halghe az aval shoro mishavad
			// Mannd continue  Dar Java
    } else {
      numPs += 1 // Dar Inja Ham Mannad Halqe Adi k Hanoz B continue  Nareside Mibinim
    }
  }
}
println("Yaft : " + numPs + " d'HA Dar Ebarat Mojod (SearchME).")

 

+1 امتیاز
قبل توسط (1.1هزار امتیاز)

یه راه که توسعه دهندگان Scala هم پیشنهاد می دهند اینه که سبک برنامه نویسی بدون break و continue را یاد بگیریم و بجای continue از if استفاده کنیم و بجای break از متغییر های boolean. به کد های زیر نگاه کنید:

int i = 0;
// This is Java
boolean foundIt = false;
while (i &lt; args.length) {
    if (args[i].startsWith("-")) {
        i = i + 1;
        continue;
    }
    if (args[i].endsWith(".scala")) {
        foundIt = true;
        break;
    }
    i = i + 1;
}

می توان کد بالا را با استفاده از Scala و بدون break و continue بصورت زیر پیاده سازی کرد:

var i = 0
var foundIt = false
while (i < args.length && !foundIt) {
	if (!args(i).startsWith("-")) {
		if (args(i).endsWith(".scala")) foundIt = true
	}
	i = i + 1
}

سوالات مشابه

+1 امتیاز
1 پاسخ 997 بازدید
سوال شده 10 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
2 پاسخ 7.4هزار بازدید
سوال شده 6 سال قبل در تفریح و سرگرمی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 248 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 401 بازدید
0 امتیاز
1 پاسخ 853 بازدید
0 امتیاز
0 پاسخ 217 بازدید
...