Blog ENI : Toute la veille numérique !
🎃 Jusqu'à -30% sur les livres en ligne, vidéos et e-formations.
Code : GHOST30.
Cliquez ici !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici

Manipuler les variables

Qu’est-ce qu’une variable ?

Le concept de variable n’est pas propre au langage Kotlin puisque les variables existent dans la quasi-totalité des langages de programmation. Une variable permet, dans un programme, de stocker des informations comme des chiffres, des chaînes de caractères, des résultats de calcul, des saisies utilisateur, etc.

Déclarer une variable

En Kotlin, une variable est constituée de plusieurs éléments : un nom, un type et une valeur.

Le nom permet d’identifier la variable afin de la réutiliser tout au long d’un programme. Il doit être unique. Le type correspond au type d’élément que stocke la variable (un chiffre, un caractère, un nombre, etc.). La valeur correspond à ce qui est réellement stocké dans la variable, par exemple le nombre 5, la chaîne de caractères "toto" ou encore le chiffre décimal 5.7.

Nommer une variable

Une variable doit être nommée. Le but étant de pouvoir la manipuler et l’identifier tout au long du programme. En Kotlin, comme dans de nombreux langages de programmation, il y a quelques contraintes à respecter quant au nom que l’on donne aux variables d’un programme.

La première contrainte est l’utilisation de la notation lowerCamelCase. Cela signifie que le nom de la variable ne peut pas contenir d’espace ni aucun caractère de ponctuation. La première lettre du nom doit être une lettre en minuscule ; et si l’on souhaite utiliser plusieurs mots collés, la première lettre de chacun des mots (sauf le premier) doit être une lettre majuscule.

La deuxième contrainte concerne les caractères utilisables pour nommer la variable : il ne peut y avoir que des lettres minuscules et majuscules, des chiffres et des underscores (_).

En outre, le nom de la variable doit commencer par une lettre.

Comme de nombreux langages de programmation, Kotlin est sensible à la casse et fait donc la différence entre les majuscules...

Les types de variables

En Kotlin, on distingue généralement deux types de variables : des variables de type primitif et des variables de type objet.

Les types primitifs sont les types fondamentaux du langage Kotlin. Il s’agit des nombres entiers, des nombres réels, des booléens ou encore des caractères.

Nous reviendrons plus loin sur le second type : les objets.

1. Les nombres entiers

En Kotlin, comme dans de nombreux langages de programmation, il existe plusieurs types de variables permettant de stocker des nombres entiers. Il est important de tous les connaître, car ils permettent d’optimiser un programme en choisissant le type le plus adapté à la situation :

Type

Occupation en mémoire (en bits)

Minimum

Maximum

Long

64

-9223372036854775808

9223372036854775807

Int

32

-2147483648

2147483647

Short

16

-32768

32767

Byte

8

-128

127

2. Les nombres flottants

En Kotlin, comme dans de nombreux langages de programmation, il existe plusieurs types de variables permettant de stocker des nombres flottants, c’est-à-dire des nombres décimaux.

Type

Occupation en mémoire (en bits)

Double...

Déclarer une variable (suite)

Jusqu’à maintenant, nous avons surtout vu la théorie sur les variables, mais nous ne nous sommes pas encore penchés sur la syntaxe à utiliser. Pour déclarer une variable, il convient d’écrire, dans l’ordre, le mot-clé var (comme "variable"), suivi du nom de la variable, du caractère : et du type de la variable.

Exemples

fun main() 
{ 
 var nombreDeVoitures: Int 
 var argent: Long 
 var age: Byte 
 var prixAspirateur: Short 
 var prenom: String 
 var estVrai: Boolean 
 var resultatDivision: Double 
 var resultatSoustraction: Float 
 var lettre: Char 
} 

Affecter une valeur à une variable

Maintenant que nous savons déclarer des variables, nous pouvons leur affecter des valeurs. Pour cela, il suffit d’écrire, dans l’ordre, le caractère =, suivi de la valeur à affecter.

Exemples

fun main() 
{ 
 var nombreDeVoitures: Int = 35000 
 var argent: Long = 1001L 
 var age: Byte = 100 
 var prixAspirateur: Short = 123 
 var prenom: String = "Ludovic" 
 var estVrai: Boolean = true 
 var resultatDivision: Double = 0.3456314786114552145211 
 var resultatSoustraction: Float = 0.365f 
 var lettre: Char = 'A' 
} 

Pour les valeurs de type Long et Float, vous remarquerez l’utilisation des caractères L et f.

Il est également possible de changer à tout moment la valeur d’une variable ou encore de lui affecter une valeur après l’avoir déclarée :

fun main() 
{ 
 var nombreDeVoitures: Int 
 nombreDeVoitures = 6 
 nombreDeVoitures = 10 
 
 var age: Int = 6 ...

Les variables de type "lecture seule"

Outre les variables déclarées avec le mot-clé var et dont il est possible de changer la valeur à tout moment, il existe les variables en lecture seule. Elles ne peuvent prendre qu’une seule valeur. Une fois cette valeur affectée, il n’est plus possible de la changer.

La syntaxe est très proche de la précédente. La seule différence est que nous utilisons le mot-clé val à la place du mot-clé var.

fun main() 
{ 
 val nombreDeVoitures: Int 
 nombreDeVoitures = 6 
 
 val age: Int = 6 
} 

Les constantes

Parfois, il est nécessaire d’utiliser des variables dont la valeur ne doit pas changer pendant toute la durée du programme. Ces variables particulières sont appelées constantes.

Du point de vue de la syntaxe, la déclaration d’une constante est comparable à la déclaration de variable en lecture seule, à ceci près qu’on ajoute le mot-clé supplémentaire : const.

Les constantes sont globales. Il convient donc de les déclarer en dehors de la fonction main.

Par ailleurs, il est obligatoire de donner à une constante sa valeur dès sa déclaration.

const val age: Int = 6 
 
fun main() 
{ 
  //... 
} 

Quelle est alors la différence entre une constante et une variable en lecture seule ?

Nous venons de voir une différence fondamentale : une constante doit être initialisée avec une valeur dès sa déclaration. Ce n’est pas le cas d’une variable en lecture seule. En outre, contrairement aux constantes les variables en lecture seule permettent...

Formater des nombres

Le langage Kotlin offre la possibilité de formater les variables de types numériques avec le séparateur underscore (_). Si ce formatage n’est pas obligatoire, il permet de rendre le code source d’un programme plus lisible dans le cas de l’utilisation de grands nombres.

val grandNombre: Int = 27_000 
val tresGrandNombre: Double = 1_000_000_000_000.0 

L’inférence de type

L’inférence de type est un mécanisme qui permet au compilateur de rechercher automatiquement le type d’une variable en fonction de la valeur affectée. Pour le développeur, cela signifie qu’il n’est pas systématiquement nécessaire de déclarer le type d’une variable, ce qui simplifie grandement la tâche.

L’inférence de type n’est possible que si la valeur de la variable est affectée au moment de sa déclaration !

val nombreDeVoitures = 35000 
val argent = 1001L 
val age = 100 
val prixAspirateur = 123 
val prenom = "Ludovic" 
val estVrai = true 
val resultatDivision = 0.3456314786114552145211 
val resultatSoustraction = 0.365f 
val lettre = 'A' 

Si précédemment les variables age et prixAspirateur étaient de type Short et Byte, avec l’inférence de type, elles sont dorénavant de type Int toutes les deux.

Pour forcer l’utilisation des types Short et Byte, nous pouvons utiliser la syntaxe suivante :

val age = 100.toByte() ...

Afficher le contenu d’une variable

Au début de cet ouvrage, nous avons vu qu’il est possible d’afficher du texte dans le terminal via les fonctions println et print.

Pour afficher le contenu d’une variable, nous utilisons les mêmes fonctions :

fun main() 
{ 
 val age = 10 
 print("la variable age a pour valeur : ") 
 print(age) 
} 

L’exécution du code permet d’afficher la phrase suivante dans le terminal :

la variable age a pour valeur : 10 

Il est également possible d’afficher la même phrase grâce à une seule instruction print. Pour cela, il convient d’utiliser ce qu’on appelle les templates de chaînes de caractères (string templates). Dans cet exemple, nous écrivons le nom de la variable (age) dans la chaîne de caractères en le faisant précéder du symbole $.

fun main() 
{ 
 val age = 10 
 print("la variable age a pour valeur : $age") 
} 

Via ce système, il est possible d’afficher plusieurs variables dans...

Place aux calculs !

1. Les calculs de base

Dans cette section, nous allons manipuler les variables afin de réaliser des calculs comme des additions, des multiplications, des divisions, etc. Commençons par des opérations simples, à savoir les additions, les soustractions, les multiplications, les divisions et le modulo.

a. L’addition

Pour faire une addition, il convient, comme en mathématiques, d’utiliser le symbole +. Le résultat de cette addition peut être stocké dans une variable.

Par exemple, le code suivant additionne deux nombres entiers et affiche le résultat dans le terminal :

val resultat = 1 + 2 
print(resultat) 

b. La soustraction

Le principe de la soustraction est en tout point identique à celui de l’addition, si ce n’est qu’il convient d’utiliser le symbole -.

Par exemple, le code suivant soustrait deux nombres entiers et affiche le résultat dans le terminal :

val resultat = 5 - 2 
print(resultat) 

c. La multiplication

Le principe reste le même. Cependant, ici, c’est le symbole * qui doit être utilisé.

Par exemple, le code suivant multiplie deux nombres entiers et affiche le résultat dans le terminal :

val resultat = 5 * 2 
print(resultat) 

d. La division

Pour exprimer une division, c’est le symbole / que l’on utilise.

Par exemple, le code suivant divise deux nombres entiers et affiche le résultat dans le terminal :...

En résumé

  • Les variables sont indispensables pour écrire un programme informatique.

  • Il existe plusieurs types de variables.

  • Pour affecter une valeur à une variable, on utilise le caractère =.

  • Pour déclarer une variable, on peut utiliser les mots-clés var et val.

  • L’inférence de type permet de se dispenser de l’écriture du type de la variable. 

  • Il est possible d’effectuer divers calculs mathématiques avec les variables, de la simple addition au logarithme népérien.

  • Il existe des écritures raccourcies qui permettent de rendre le code que l’on écrit moins verbeux.