[{"data":1,"prerenderedAt":1182},["ShallowReactive",2],{"page-\u002Fkotlin\u002Fconditions-boucles-fonctions":3,"pieces-kotlin":1139,"autour-\u002Fkotlin\u002Fconditions-boucles-fonctions":1164,"prerequis-\u002Fkotlin\u002Fconditions-boucles-fonctions":1169,"plan-kotlin":1171},{"id":4,"title":5,"body":6,"description":1112,"extension":1113,"ligne":49,"meta":1114,"motsCles":1115,"navigation":681,"niveau":1117,"path":1118,"prerequis":1119,"ressources":1121,"seo":1133,"sources":1134,"stem":1137,"__hash__":1138},"docs\u002Fkotlin\u002F02.conditions-boucles-fonctions.md","Conditions, boucles et fonctions",{"type":7,"value":8,"toc":1098},"minimark",[9,14,40,44,130,145,155,159,264,271,277,282,361,375,383,387,454,463,466,558,572,575,622,626,722,731,737,747,789,793,798,827,832,836,947,957,967,971,1037,1042,1046,1094],[10,11,13],"h2",{"id":12},"ce-que-tu-vas-apprendre","Ce que tu vas apprendre",[15,16,17,30,37],"ul",{},[18,19,20,21,25,26,29],"li",{},"Choisir entre plusieurs cas avec ",[22,23,24],"code",{},"if"," et ",[22,27,28],{},"when",".",[18,31,32,33,36],{},"Répéter une action avec ",[22,34,35],{},"for"," et les intervalles.",[18,38,39],{},"Écrire tes propres fonctions, avec des valeurs par défaut.",[10,41,43],{"id":42},"if-une-expression","if : une expression",[45,46,51],"pre",{"className":47,"code":48,"language":49,"meta":50,"style":50},"language-kotlin shiki shiki-themes github-light-default github-dark-default github-dark-default","val minutes = 25\nval rapide = if (minutes \u003C= 30) \"rapide\" else \"longue\"\nprintln(\"Recette $rapide\")\n","kotlin","",[22,52,53,73,108],{"__ignoreMap":50},[54,55,58,62,66,69],"span",{"class":56,"line":57},"line",1,[54,59,61],{"class":60},"sOnC1","val",[54,63,65],{"class":64},"scfrF"," minutes ",[54,67,68],{"class":60},"=",[54,70,72],{"class":71},"s5iOY"," 25\n",[54,74,76,78,81,83,86,89,92,95,98,102,105],{"class":56,"line":75},2,[54,77,61],{"class":60},[54,79,80],{"class":64}," rapide ",[54,82,68],{"class":60},[54,84,85],{"class":60}," if",[54,87,88],{"class":64}," (minutes ",[54,90,91],{"class":60},"\u003C=",[54,93,94],{"class":71}," 30",[54,96,97],{"class":64},") ",[54,99,101],{"class":100},"shWOn","\"rapide\"",[54,103,104],{"class":60}," else",[54,106,107],{"class":100}," \"longue\"\n",[54,109,111,115,118,121,124,127],{"class":56,"line":110},3,[54,112,114],{"class":113},"syCW7","println",[54,116,117],{"class":64},"(",[54,119,120],{"class":100},"\"Recette ",[54,122,123],{"class":71},"$rapide",[54,125,126],{"class":100},"\"",[54,128,129],{"class":64},")\n",[131,132,133,134,136,137,141,142,29],"p",{},"En Kotlin, ",[22,135,24],{}," peut produire une valeur : c'est une ",[138,139,140],"strong",{},"expression",". Le résultat est rangé dans ",[22,143,144],{},"rapide",[131,146,147,148,150,151,154],{},"Quand ",[22,149,24],{}," sert de cette façon, la branche ",[22,152,153],{},"else"," est obligatoire. Chaque branche peut être un bloc entre accolades, et la dernière ligne du bloc donne la valeur.",[10,156,158],{"id":157},"when-plusieurs-cas","when : plusieurs cas",[45,160,162],{"className":47,"code":161,"language":49,"meta":50,"style":50},"val type = \"dessert\"\nwhen (type) {\n    \"entree\" -> println(\"À servir froid\")\n    \"plat\" -> println(\"À servir chaud\")\n    \"dessert\", \"gouter\" -> println(\"Pour la fin du repas\")\n    else -> println(\"Type inconnu\")\n}\n",[22,163,164,176,183,201,218,241,258],{"__ignoreMap":50},[54,165,166,168,171,173],{"class":56,"line":57},[54,167,61],{"class":60},[54,169,170],{"class":64}," type ",[54,172,68],{"class":60},[54,174,175],{"class":100}," \"dessert\"\n",[54,177,178,180],{"class":56,"line":75},[54,179,28],{"class":60},[54,181,182],{"class":64}," (type) {\n",[54,184,185,188,191,194,196,199],{"class":56,"line":110},[54,186,187],{"class":100},"    \"entree\"",[54,189,190],{"class":60}," ->",[54,192,193],{"class":113}," println",[54,195,117],{"class":64},[54,197,198],{"class":100},"\"À servir froid\"",[54,200,129],{"class":64},[54,202,204,207,209,211,213,216],{"class":56,"line":203},4,[54,205,206],{"class":100},"    \"plat\"",[54,208,190],{"class":60},[54,210,193],{"class":113},[54,212,117],{"class":64},[54,214,215],{"class":100},"\"À servir chaud\"",[54,217,129],{"class":64},[54,219,221,224,227,230,232,234,236,239],{"class":56,"line":220},5,[54,222,223],{"class":100},"    \"dessert\"",[54,225,226],{"class":64},", ",[54,228,229],{"class":100},"\"gouter\"",[54,231,190],{"class":60},[54,233,193],{"class":113},[54,235,117],{"class":64},[54,237,238],{"class":100},"\"Pour la fin du repas\"",[54,240,129],{"class":64},[54,242,244,247,249,251,253,256],{"class":56,"line":243},6,[54,245,246],{"class":60},"    else",[54,248,190],{"class":60},[54,250,193],{"class":113},[54,252,117],{"class":64},[54,254,255],{"class":100},"\"Type inconnu\"",[54,257,129],{"class":64},[54,259,261],{"class":56,"line":260},7,[54,262,263],{"class":64},"}\n",[131,265,266,268,269,29],{},[138,267,28],{}," compare une valeur à chaque branche, dans l'ordre, et exécute la première qui correspond. Il remplace une longue suite de ",[22,270,24],{},[131,272,273,274,276],{},"On sépare plusieurs valeurs par une virgule. ",[22,275,153],{}," couvre tous les autres cas.",[278,279,281],"h3",{"id":280},"intervalles-et-when-sans-valeur","Intervalles et when sans valeur",[45,283,285],{"className":47,"code":284,"language":49,"meta":50,"style":50},"val minutes = 40\nval duree = when {\n    minutes \u003C 15 -> \"express\"\n    minutes in 15..45 -> \"normale\"\n    else -> \"longue\"\n}\n",[22,286,287,298,313,329,349,357],{"__ignoreMap":50},[54,288,289,291,293,295],{"class":56,"line":57},[54,290,61],{"class":60},[54,292,65],{"class":64},[54,294,68],{"class":60},[54,296,297],{"class":71}," 40\n",[54,299,300,302,305,307,310],{"class":56,"line":75},[54,301,61],{"class":60},[54,303,304],{"class":64}," duree ",[54,306,68],{"class":60},[54,308,309],{"class":60}," when",[54,311,312],{"class":64}," {\n",[54,314,315,318,321,324,326],{"class":56,"line":110},[54,316,317],{"class":64},"    minutes ",[54,319,320],{"class":60},"\u003C",[54,322,323],{"class":71}," 15",[54,325,190],{"class":60},[54,327,328],{"class":100}," \"express\"\n",[54,330,331,333,336,338,341,344,346],{"class":56,"line":203},[54,332,317],{"class":64},[54,334,335],{"class":60},"in",[54,337,323],{"class":71},[54,339,340],{"class":60},"..",[54,342,343],{"class":71},"45",[54,345,190],{"class":60},[54,347,348],{"class":100}," \"normale\"\n",[54,350,351,353,355],{"class":56,"line":220},[54,352,246],{"class":60},[54,354,190],{"class":60},[54,356,107],{"class":100},[54,358,359],{"class":56,"line":243},[54,360,263],{"class":64},[131,362,363,364,367,368,371,372,374],{},"Un ",[138,365,366],{},"intervalle"," s'écrit ",[22,369,370],{},"15..45"," et inclut les deux bornes. ",[22,373,335],{}," teste l'appartenance.",[131,376,377,378,380,381,29],{},"Sans valeur entre parenthèses, chaque branche est une condition booléenne. Quand ",[22,379,28],{}," donne une valeur, il doit couvrir tous les cas, d'où le ",[22,382,153],{},[10,384,386],{"id":385},"for-répéter","for : répéter",[45,388,390],{"className":47,"code":389,"language":49,"meta":50,"style":50},"val courses = listOf(\"farine\", \"oeufs\", \"lait\")\nfor (article in courses) {\n    println(\"- $article\")\n}\n",[22,391,392,421,433,450],{"__ignoreMap":50},[54,393,394,396,399,401,404,406,409,411,414,416,419],{"class":56,"line":57},[54,395,61],{"class":60},[54,397,398],{"class":64}," courses ",[54,400,68],{"class":60},[54,402,403],{"class":113}," listOf",[54,405,117],{"class":64},[54,407,408],{"class":100},"\"farine\"",[54,410,226],{"class":64},[54,412,413],{"class":100},"\"oeufs\"",[54,415,226],{"class":64},[54,417,418],{"class":100},"\"lait\"",[54,420,129],{"class":64},[54,422,423,425,428,430],{"class":56,"line":75},[54,424,35],{"class":60},[54,426,427],{"class":64}," (article ",[54,429,335],{"class":60},[54,431,432],{"class":64}," courses) {\n",[54,434,435,438,440,443,446,448],{"class":56,"line":110},[54,436,437],{"class":113},"    println",[54,439,117],{"class":64},[54,441,442],{"class":100},"\"- ",[54,444,445],{"class":71},"$article",[54,447,126],{"class":100},[54,449,129],{"class":64},[54,451,452],{"class":56,"line":203},[54,453,263],{"class":64},[131,455,456,458,459,462],{},[22,457,35],{}," parcourt une liste, un tableau ou un intervalle. Ici, ",[22,460,461],{},"article"," prend chaque valeur à tour de rôle.",[131,464,465],{},"Pour compter, utilise un intervalle :",[45,467,469],{"className":47,"code":468,"language":49,"meta":50,"style":50},"for (i in 1..3) print(i)       \u002F\u002F 123\nfor (i in 1..\u003C3) print(i)      \u002F\u002F 12\nfor (i in 6 downTo 0 step 2) print(i)  \u002F\u002F 6420\n",[22,470,471,500,525],{"__ignoreMap":50},[54,472,473,475,478,480,483,485,488,490,493,496],{"class":56,"line":57},[54,474,35],{"class":60},[54,476,477],{"class":64}," (i ",[54,479,335],{"class":60},[54,481,482],{"class":71}," 1",[54,484,340],{"class":60},[54,486,487],{"class":71},"3",[54,489,97],{"class":64},[54,491,492],{"class":113},"print",[54,494,495],{"class":64},"(i)       ",[54,497,499],{"class":498},"sd6ml","\u002F\u002F 123\n",[54,501,502,504,506,508,510,513,515,517,519,522],{"class":56,"line":75},[54,503,35],{"class":60},[54,505,477],{"class":64},[54,507,335],{"class":60},[54,509,482],{"class":71},[54,511,512],{"class":60},"..\u003C",[54,514,487],{"class":71},[54,516,97],{"class":64},[54,518,492],{"class":113},[54,520,521],{"class":64},"(i)      ",[54,523,524],{"class":498},"\u002F\u002F 12\n",[54,526,527,529,531,533,536,539,542,545,548,550,552,555],{"class":56,"line":110},[54,528,35],{"class":60},[54,530,477],{"class":64},[54,532,335],{"class":60},[54,534,535],{"class":71}," 6",[54,537,538],{"class":64}," downTo ",[54,540,541],{"class":71},"0",[54,543,544],{"class":64}," step ",[54,546,547],{"class":71},"2",[54,549,97],{"class":64},[54,551,492],{"class":113},[54,553,554],{"class":64},"(i)  ",[54,556,557],{"class":498},"\u002F\u002F 6420\n",[131,559,560,563,564,567,568,571],{},[22,561,562],{},"1..\u003C3"," exclut la borne de fin. ",[22,565,566],{},"downTo"," compte à rebours et ",[22,569,570],{},"step"," règle le pas.",[131,573,574],{},"Pour avoir la position de chaque élément :",[45,576,578],{"className":47,"code":577,"language":49,"meta":50,"style":50},"for ((index, article) in courses.withIndex()) {\n    println(\"$index : $article\")\n}\n",[22,579,580,598,618],{"__ignoreMap":50},[54,581,582,584,587,589,592,595],{"class":56,"line":57},[54,583,35],{"class":60},[54,585,586],{"class":64}," ((index, article) ",[54,588,335],{"class":60},[54,590,591],{"class":64}," courses.",[54,593,594],{"class":113},"withIndex",[54,596,597],{"class":64},"()) {\n",[54,599,600,602,604,606,609,612,614,616],{"class":56,"line":75},[54,601,437],{"class":113},[54,603,117],{"class":64},[54,605,126],{"class":100},[54,607,608],{"class":71},"$index",[54,610,611],{"class":100}," : ",[54,613,445],{"class":71},[54,615,126],{"class":100},[54,617,129],{"class":64},[54,619,620],{"class":56,"line":110},[54,621,263],{"class":64},[10,623,625],{"id":624},"écrire-une-fonction","Écrire une fonction",[45,627,629],{"className":47,"code":628,"language":49,"meta":50,"style":50},"fun total(prix: Double, quantite: Int): Double {\n    return prix * quantite\n}\n\nfun main() {\n    println(total(2.5, 4))   \u002F\u002F 10.0\n}\n",[22,630,631,659,673,677,683,693,718],{"__ignoreMap":50},[54,632,633,636,639,642,646,649,652,655,657],{"class":56,"line":57},[54,634,635],{"class":60},"fun",[54,637,638],{"class":113}," total",[54,640,641],{"class":64},"(prix: ",[54,643,645],{"class":644},"sIXEE","Double",[54,647,648],{"class":64},", quantite: ",[54,650,651],{"class":644},"Int",[54,653,654],{"class":64},"): ",[54,656,645],{"class":644},[54,658,312],{"class":64},[54,660,661,664,667,670],{"class":56,"line":75},[54,662,663],{"class":60},"    return",[54,665,666],{"class":64}," prix ",[54,668,669],{"class":60},"*",[54,671,672],{"class":64}," quantite\n",[54,674,675],{"class":56,"line":110},[54,676,263],{"class":64},[54,678,679],{"class":56,"line":203},[54,680,682],{"emptyLinePlaceholder":681},true,"\n",[54,684,685,687,690],{"class":56,"line":220},[54,686,635],{"class":60},[54,688,689],{"class":113}," main",[54,691,692],{"class":64},"() {\n",[54,694,695,697,699,702,704,707,709,712,715],{"class":56,"line":243},[54,696,437],{"class":113},[54,698,117],{"class":64},[54,700,701],{"class":113},"total",[54,703,117],{"class":64},[54,705,706],{"class":71},"2.5",[54,708,226],{"class":64},[54,710,711],{"class":71},"4",[54,713,714],{"class":64},"))   ",[54,716,717],{"class":498},"\u002F\u002F 10.0\n",[54,719,720],{"class":56,"line":260},[54,721,263],{"class":64},[131,723,724,725,728,729,29],{},"Une ",[138,726,727],{},"fonction"," regroupe des instructions sous un nom. Elle se déclare avec ",[22,730,635],{},[131,732,733,734,29],{},"Chaque paramètre a un type, écrit après son nom. Le type retourné suit la parenthèse fermante, après ",[22,735,736],{},":",[131,738,739,740,743,744,29],{},"Une fonction qui ne renvoie rien renvoie en réalité ",[22,741,742],{},"Unit",". On peut alors omettre le type et ",[22,745,746],{},"return",[45,748,750],{"className":47,"code":749,"language":49,"meta":50,"style":50},"fun afficherTitre(titre: String) {\n    println(\"== $titre ==\")\n}\n",[22,751,752,768,785],{"__ignoreMap":50},[54,753,754,756,759,762,765],{"class":56,"line":57},[54,755,635],{"class":60},[54,757,758],{"class":113}," afficherTitre",[54,760,761],{"class":64},"(titre: ",[54,763,764],{"class":644},"String",[54,766,767],{"class":64},") {\n",[54,769,770,772,774,777,780,783],{"class":56,"line":75},[54,771,437],{"class":113},[54,773,117],{"class":64},[54,775,776],{"class":100},"\"== ",[54,778,779],{"class":71},"$titre",[54,781,782],{"class":100}," ==\"",[54,784,129],{"class":64},[54,786,787],{"class":56,"line":110},[54,788,263],{"class":64},[278,790,792],{"id":791},"une-fonction-sur-une-ligne","Une fonction sur une ligne",[131,794,795,796,29],{},"Quand le corps tient en une expression, remplace les accolades par ",[22,797,68],{},[45,799,801],{"className":47,"code":800,"language":49,"meta":50,"style":50},"fun total(prix: Double, quantite: Int) = prix * quantite\n",[22,802,803],{"__ignoreMap":50},[54,804,805,807,809,811,813,815,817,819,821,823,825],{"class":56,"line":57},[54,806,635],{"class":60},[54,808,638],{"class":113},[54,810,641],{"class":64},[54,812,645],{"class":644},[54,814,648],{"class":64},[54,816,651],{"class":644},[54,818,97],{"class":64},[54,820,68],{"class":60},[54,822,666],{"class":64},[54,824,669],{"class":60},[54,826,672],{"class":64},[131,828,829,830,29],{},"Le type de retour est alors déduit. Avec des accolades, il faut l'écrire, sauf pour ",[22,831,742],{},[10,833,835],{"id":834},"valeurs-par-défaut-et-arguments-nommés","Valeurs par défaut et arguments nommés",[45,837,839],{"className":47,"code":838,"language":49,"meta":50,"style":50},"fun afficher(recette: String, prefixe: String = \"Info\") {\n    println(\"[$prefixe] $recette\")\n}\n\nfun main() {\n    afficher(\"Quiche\")                         \u002F\u002F [Info] Quiche\n    afficher(prefixe = \"Nouveau\", recette = \"Flan\")\n}\n",[22,840,841,866,888,892,896,904,920,942],{"__ignoreMap":50},[54,842,843,845,848,851,853,856,858,861,864],{"class":56,"line":57},[54,844,635],{"class":60},[54,846,847],{"class":113}," afficher",[54,849,850],{"class":64},"(recette: ",[54,852,764],{"class":644},[54,854,855],{"class":64},", prefixe: ",[54,857,764],{"class":644},[54,859,860],{"class":60}," =",[54,862,863],{"class":100}," \"Info\"",[54,865,767],{"class":64},[54,867,868,870,872,875,878,881,884,886],{"class":56,"line":75},[54,869,437],{"class":113},[54,871,117],{"class":64},[54,873,874],{"class":100},"\"[",[54,876,877],{"class":71},"$prefixe",[54,879,880],{"class":100},"] ",[54,882,883],{"class":71},"$recette",[54,885,126],{"class":100},[54,887,129],{"class":64},[54,889,890],{"class":56,"line":110},[54,891,263],{"class":64},[54,893,894],{"class":56,"line":203},[54,895,682],{"emptyLinePlaceholder":681},[54,897,898,900,902],{"class":56,"line":220},[54,899,635],{"class":60},[54,901,689],{"class":113},[54,903,692],{"class":64},[54,905,906,909,911,914,917],{"class":56,"line":243},[54,907,908],{"class":113},"    afficher",[54,910,117],{"class":64},[54,912,913],{"class":100},"\"Quiche\"",[54,915,916],{"class":64},")                         ",[54,918,919],{"class":498},"\u002F\u002F [Info] Quiche\n",[54,921,922,924,927,929,932,935,937,940],{"class":56,"line":260},[54,923,908],{"class":113},[54,925,926],{"class":64},"(prefixe ",[54,928,68],{"class":60},[54,930,931],{"class":100}," \"Nouveau\"",[54,933,934],{"class":64},", recette ",[54,936,68],{"class":60},[54,938,939],{"class":100}," \"Flan\"",[54,941,129],{"class":64},[54,943,945],{"class":56,"line":944},8,[54,946,263],{"class":64},[131,948,949,950,367,953,956],{},"Un paramètre avec une valeur par défaut peut être omis à l'appel. Un ",[138,951,952],{},"argument nommé",[22,954,955],{},"nom = valeur"," et peut venir dans n'importe quel ordre.",[958,959,960],"tip",{},[131,961,962,963,966],{},"Les arguments nommés rendent un appel lisible, surtout quand deux paramètres ont le même type. ",[22,964,965],{},"afficher(prefixe = \"Nouveau\", recette = \"Flan\")"," se comprend sans ouvrir la fonction.",[10,968,970],{"id":969},"sortir-plus-tôt-avec-return","Sortir plus tôt avec return",[45,972,974],{"className":47,"code":973,"language":49,"meta":50,"style":50},"fun verifier(nom: String): String {\n    if (nom.isEmpty()) {\n        return \"Le nom est vide\"\n    }\n    return \"Recette : $nom\"\n}\n",[22,975,976,994,1007,1015,1020,1033],{"__ignoreMap":50},[54,977,978,980,983,986,988,990,992],{"class":56,"line":57},[54,979,635],{"class":60},[54,981,982],{"class":113}," verifier",[54,984,985],{"class":64},"(nom: ",[54,987,764],{"class":644},[54,989,654],{"class":64},[54,991,764],{"class":644},[54,993,312],{"class":64},[54,995,996,999,1002,1005],{"class":56,"line":75},[54,997,998],{"class":60},"    if",[54,1000,1001],{"class":64}," (nom.",[54,1003,1004],{"class":113},"isEmpty",[54,1006,597],{"class":64},[54,1008,1009,1012],{"class":56,"line":110},[54,1010,1011],{"class":60},"        return",[54,1013,1014],{"class":100}," \"Le nom est vide\"\n",[54,1016,1017],{"class":56,"line":203},[54,1018,1019],{"class":64},"    }\n",[54,1021,1022,1024,1027,1030],{"class":56,"line":220},[54,1023,663],{"class":60},[54,1025,1026],{"class":100}," \"Recette : ",[54,1028,1029],{"class":71},"$nom",[54,1031,1032],{"class":100},"\"\n",[54,1034,1035],{"class":56,"line":243},[54,1036,263],{"class":64},[131,1038,1039,1041],{},[22,1040,746],{}," quitte immédiatement la fonction. Cela évite d'imbriquer les conditions les unes dans les autres.",[10,1043,1045],{"id":1044},"à-retenir","À retenir",[15,1047,1048,1056,1064,1078,1086,1091],{},[18,1049,1050,1052,1053,1055],{},[22,1051,24],{}," est une expression : il peut donner une valeur, avec un ",[22,1054,153],{}," obligatoire dans ce cas.",[18,1057,1058,1060,1061,1063],{},[22,1059,28],{}," choisit parmi plusieurs cas, accepte des virgules, des intervalles avec ",[22,1062,335],{},", et une forme sans valeur.",[18,1065,1066,1068,1069,226,1072,226,1074,226,1076,29],{},[22,1067,35],{}," parcourt une liste ou un intervalle : ",[22,1070,1071],{},"1..3",[22,1073,562],{},[22,1075,566],{},[22,1077,570],{},[18,1079,1080,1081,1083,1084,29],{},"Une fonction se déclare avec ",[22,1082,635],{},", des paramètres typés et un type de retour après ",[22,1085,736],{},[18,1087,1088,1089,29],{},"Une fonction d'une seule expression s'écrit avec ",[22,1090,68],{},[18,1092,1093],{},"Les valeurs par défaut et les arguments nommés évitent d'écrire plusieurs versions d'une même fonction.",[1095,1096,1097],"style",{},"html pre.shiki code .sOnC1, html code.shiki .sOnC1{--shiki-light:#CF222E;--shiki-default:#FF7B72;--shiki-dark:#FF7B72}html pre.shiki code .scfrF, html code.shiki .scfrF{--shiki-light:#1F2328;--shiki-default:#E6EDF3;--shiki-dark:#E6EDF3}html pre.shiki code .s5iOY, html code.shiki .s5iOY{--shiki-light:#0550AE;--shiki-default:#79C0FF;--shiki-dark:#79C0FF}html pre.shiki code .shWOn, html code.shiki .shWOn{--shiki-light:#0A3069;--shiki-default:#A5D6FF;--shiki-dark:#A5D6FF}html pre.shiki code .syCW7, html code.shiki .syCW7{--shiki-light:#8250DF;--shiki-default:#D2A8FF;--shiki-dark:#D2A8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sd6ml, html code.shiki .sd6ml{--shiki-light:#6E7781;--shiki-default:#8B949E;--shiki-dark:#8B949E}html pre.shiki code .sIXEE, html code.shiki .sIXEE{--shiki-light:#953800;--shiki-default:#FFA657;--shiki-dark:#FFA657}",{"title":50,"searchDepth":75,"depth":110,"links":1099},[1100,1101,1102,1105,1106,1109,1110,1111],{"id":12,"depth":75,"text":13},{"id":42,"depth":75,"text":43},{"id":157,"depth":75,"text":158,"children":1103},[1104],{"id":280,"depth":110,"text":281},{"id":385,"depth":75,"text":386},{"id":624,"depth":75,"text":625,"children":1107},[1108],{"id":791,"depth":110,"text":792},{"id":834,"depth":75,"text":835},{"id":969,"depth":75,"text":970},{"id":1044,"depth":75,"text":1045},"Prendre des décisions avec if et when, répéter avec for, et regrouper du code dans des fonctions avec valeurs par défaut et arguments nommés.","md",{},[24,28,35,366,727,635,1116,952],"valeur par défaut","debutant","\u002Fkotlin\u002Fconditions-boucles-fonctions",[1120],"\u002Fkotlin\u002Fdecouvrir-kotlin",[1122,1126,1130],{"nom":1123,"url":1124,"type":1125},"Conditions Kotlin, cours Principes de base d'Android avec Compose","https:\u002F\u002Fdeveloper.android.com\u002Fcourses\u002Fandroid-basics-compose\u002Fcourse?hl=fr","cours",{"nom":1127,"url":1128,"type":1129,"anglais":681},"Conditions et boucles (en anglais)","https:\u002F\u002Fkotlinlang.org\u002Fdocs\u002Fcontrol-flow.html","doc",{"nom":1131,"url":1132,"type":1129,"anglais":681},"Fonctions, visite guidée de Kotlin (en anglais)","https:\u002F\u002Fkotlinlang.org\u002Fdocs\u002Fkotlin-tour-functions.html",{"title":5,"description":1112},[1135,1136],{"nom":1127,"url":1128},{"nom":1131,"url":1132},"kotlin\u002F02.conditions-boucles-fonctions","QgpFQ5zHkm-E0Akfw61_SsD5XrYFbsPP9Kl3ZZ901F8",[1140,1143,1144,1148,1152,1156,1160],{"path":1120,"title":1141,"stem":1142},"Découvrir Kotlin","kotlin\u002F01.decouvrir-kotlin",{"path":1118,"title":5,"stem":1137},{"path":1145,"title":1146,"stem":1147},"\u002Fkotlin\u002Fsecurite-du-null","La sécurité du null","kotlin\u002F03.securite-du-null",{"path":1149,"title":1150,"stem":1151},"\u002Fkotlin\u002Fclasses-et-objets","Classes, data classes et objets","kotlin\u002F04.classes-et-objets",{"path":1153,"title":1154,"stem":1155},"\u002Fkotlin\u002Fcollections-et-lambdas","Collections et lambdas","kotlin\u002F05.collections-et-lambdas",{"path":1157,"title":1158,"stem":1159},"\u002Fkotlin\u002Fcoroutines-et-compose","Coroutines et Jetpack Compose","kotlin\u002F06.coroutines-et-compose",{"path":1161,"title":1162,"stem":1163},"\u002Fkotlin","Kotlin","kotlin\u002Findex",[1165,1167],{"title":1141,"path":1120,"stem":1142,"description":1166,"children":-1},"Ce qu'est Kotlin, comment l'essayer dans le navigateur ou dans IntelliJ IDEA, puis les bases avec val, var, les types et les chaînes à gabarits.",{"title":1146,"path":1145,"stem":1147,"description":1168,"children":-1},"Comment Kotlin évite les plantages liés à l'absence de valeur, avec les types nullables, le safe call, l'opérateur Elvis et le cast sûr.",[1170],{"path":1120,"title":1141,"ligne":49},[1172,1173,1174,1175,1177,1178,1180],{"path":1120,"title":1141,"niveau":1117,"stem":1142},{"path":1118,"title":5,"niveau":1117,"stem":1137},{"path":1145,"title":1146,"niveau":1117,"stem":1147},{"path":1149,"title":1150,"niveau":1176,"stem":1151},"intermediaire",{"path":1153,"title":1154,"niveau":1176,"stem":1155},{"path":1157,"title":1158,"niveau":1179,"stem":1159},"avance",{"path":1161,"title":1162,"niveau":1181,"stem":1163},"memo",1794583461548]