Kotlin for Android Developers


 While and do/while loops



Download 1,04 Mb.
Pdf ko'rish
bet100/125
Sana11.08.2021
Hajmi1,04 Mb.
#144654
1   ...   96   97   98   99   100   101   102   103   ...   125
Bog'liq
Kotlin for Android Developers Learn Kotlin the Easy Way While Developing an Android App ( PDFDrive )

22.4 While and do/while loops
You can keep using while loops too, though it won’t be very common either. There are usually
simpler and more visual ways to resolve a problem. A couple of examples:
1
while (x > 0) {
2
x--
3
}
4
5
do {
6
val y = retrieveData()
7
} while (y != null) // y is visible here!
22.5 Ranges
It’s difficult to explain flow control without talking about ranges. But their scope is much wider.
Range expressions make use of an operator in the form of “
..
” that is defined implementing a
RangeTo
function.
Ranges help simplify our code in many creative ways. For instance we can convert this:
1
if (i >= 0 && i <= 10)
2
println(i)
Into this:
1
if (i in 0..10)
2
println(i)
Range is defined by any type that can be compared, but for numerical types the compiler will
optimise it by converting it to simpler analogue code in Java, to avoid the extra overhead. The
numerical ranges can also be iterated, and the loops are optimised too by converting them to the
same bytecode a
for
with indices would use in Java:


22. Flow control and ranges
102
1
for (i in 0..10)
2
println(i)
Ranges are incremental by default, so something like:
1
for (i in 10..0)
2
println(i)
Would do nothing. You can, however, use the function
downTo
:
1
for (i in 10 downTo 0)
2
println(i)
We can define a spacing different from 1 among the values in a range by using
step
:
1
for (i in 1..4 step 2) println(i)
2
3
for (i in 4 downTo 1 step 2) println(i)
If you want to create an open range (which excludes the last item), you can use the function
until
:
1
for (i in 0 until 4) println(i)
This previous line will print from 0 to 3, but will skip the last value. This means that
0 until 4
== 0..3
. For iterations over lists it could be easier to understand if we use
for (i in 0 until
list.size)
instead of
for (i in 0..list.size - 1)
.
As mentioned before, there are really creative ways to use ranges. For instance, an easy way to get
the list of
View
s inside a
ViewGroup
would be:
1
val views = (0 until viewGroup.childCount).map { viewGroup.getChildAt(it) }
The mix of ranges and functional operators prevents from having to use an explicit loop to iterate
over the collection, and the creation of an explicit list where we add the views. Everything is done
in a single line.
If you want to know more about how ranges are implemented and a lot more examples and useful
information, you can go to
Kotlin reference²⁵
.
²⁵
https://kotlinlang.org/docs/reference/ranges.html



Download 1,04 Mb.

Do'stlaringiz bilan baham:
1   ...   96   97   98   99   100   101   102   103   ...   125




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish