I dette program lærer du at kontrollere, om en matrix indeholder en given værdi i Kotlin.
Eksempel 1: Kontroller, om Int Array indeholder en given værdi
fun main(args: Array) ( val num = intArrayOf(1, 2, 3, 4, 5) val toFind = 3 var found = false for (n in num) ( if (n == toFind) ( found = true break ) ) if (found) println("$toFind is found.") else println("$toFind is not found.") )
Når du kører programmet, vil output være:
3 er fundet.
I ovenstående program har vi en række heltal gemt i variabel num. Ligeledes gemmes det antal, der skal findes, i toFind.
Nu bruger vi en for-in
løkke til at gentage alle elementerne i num og kontrollere individuelt, om toFind er lig med n eller ikke.
Hvis ja, indstiller vi fundet til true
og bryder fra sløjfen. Hvis ikke, går vi videre til næste iteration.
Eksempel 2: Kontroller, om array indeholder en given værdi ved hjælp af Stream
import java.util.stream.IntStream fun main(args: Array) ( val num = intArrayOf(1, 2, 3, 4, 5) val toFind = 7 val found = IntStream.of(*num).anyMatch ( n -> n == toFind ) if (found) println("$toFind is found.") else println("$toFind is not found.") )
Når du kører programmet, vil output være:
7 findes ikke.
I ovenstående program konverterer vi arrayet til en i stedet for at bruge en foreach-loop IntStream
og bruger dens anyMatch()
metode.
anyMatch()
metode tager et prædikat, et udtryk eller en funktion, der returnerer en boolsk værdi. I vores tilfælde sammenligner prædikatet hvert element n i strømmen med toFind og returnerer true
eller false
.
Hvis noget af elementet n vender tilbage true
, er fundet også indstillet til true
.
Eksempel 3: Kontroller, om matrix indeholder en given værdi for ikke-primitive typer
import java.util.Arrays fun main(args: Array) ( val strings = arrayOf("One", "Two", "Three", "Four", "Five") val toFind = "Four" val found = Arrays.stream(strings).anyMatch ( t -> t == toFind ) if (found) println("$toFind is found.") else println("$toFind is not found.") )
Når du kører programmet, vil output være:
Fire findes.
I ovenstående program, har vi brugt en ikke-primitiv datatype String
og brugt Arrays
's stream()
metode til først konvertere det til et vandløb, og anyMatch()
at kontrollere, om opstilling indeholder den givne værdi tofind.
Her er den tilsvarende Java-kode: Java-program for at kontrollere, om array indeholder en given værdi.