All guides
Intermediate-AdvancedSelf-pacedFree GuideSection 3/33

Ruby — Variables, types et boucles

Learn to build and check a web application with development tools and AI assistants. Practise design, coding and validation.

The full lessons for this course are currently available in French. Use the section menu to navigate the French course.

💡

Free content, available without an account. Tools and models change: use the current model guide to check their versions. Models and sources

Section 13.1.3 : Ruby — Variables, types et boucles

🎯 Objectif pédagogique

Découvrir le langage Ruby, comprendre ses types de données fondamentaux et maîtriser les structures de contrôle. Ruby est le langage au cœur de Ruby on Rails — sa philosophie de « developer happiness » en fait un excellent premier langage.


Pourquoi Ruby ?

Ruby est un langage créé en 1995 par Yukihiro « Matz » Matsumoto au Japon. Sa philosophie : « Ruby is designed to make programmers happy ». Le langage privilégie la lisibilité et l'expressivité, ce qui en fait un excellent choix pour apprendre la programmation.

Variables et types de données

En Ruby, pas besoin de déclarer le type — le langage le déduit automatiquement (typage dynamique).

# Strings
prenom = 'Alice'
nom = "Martin"
message = "Bonjour, #{prenom} #{nom} !"  # Interpolation

# Nombres
age = 28                    # Integer
prix = 19.99                # Float
quantite = 1_000_000        # Underscore pour lisibilité

# Booléens
majeur = true
inscrit = false

# Nil
resultat = nil

# Symboles
statut = :actif
role = :admin

Opérations sur les strings

nom = 'alice martin'
nom.upcase        # 'ALICE MARTIN'
nom.capitalize    # 'Alice martin'
nom.length        # 12
nom.include?('alice')  # true
nom.gsub('alice', 'bob')  # 'bob martin'
nom.split(' ')    # ['alice', 'martin']
nom.reverse       # 'nitram ecila'
nom.empty?        # false
nom.start_with?('alice')  # true

Opérations sur les nombres

10 + 3    # 13
10 - 3    # 7
10 * 3    # 30
10 / 3    # 3 (division entière !)
10.0 / 3  # 3.333...
10 % 3    # 1 (modulo)
2 ** 10   # 1024 (puissance)

'42'.to_i    # 42
42.to_s      # '42'
42.to_f      # 42.0
-5.abs       # 5
42.even?     # true

Structures conditionnelles

age = 25

if age >= 18
  puts 'Vous êtes majeur'
elsif age >= 16
  puts 'Presque majeur'
else
  puts 'Vous êtes mineur'
end

# Opérateur ternaire
statut = age >= 18 ? 'majeur' : 'mineur'

# unless (inverse de if)
unless age >= 18
  puts 'Accès refusé'
end

# Condition postfix
puts 'Bienvenue !' if age >= 18

# case / when
role = :admin
case role
when :admin then puts 'Accès total'
when :editor then puts 'Accès écriture'
when :viewer then puts 'Accès lecture'
else puts 'Rôle inconnu'
end

Boucles

# while
compteur = 0
while compteur < 5
  puts "Tour #{compteur}"
  compteur += 1
end

# times (la manière Ruby)
5.times do |i|
  puts "Itération #{i}"
end

# upto / downto
1.upto(5) { |i| puts i }
5.downto(1) { |i| puts i }

# loop avec break
loop do
  puts 'Entrez votre nom :'
  nom = gets.chomp
  break if nom.length >= 2
  puts 'Nom trop court !'
end

Arrays (tableaux)

fruits = ['pomme', 'banane', 'cerise']
nombres = [1, 2, 3, 4, 5]

fruits[0]         # 'pomme'
fruits[-1]        # 'cerise'
fruits << 'mangue'
fruits.push('kiwi')
fruits.delete('banane')

fruits.each { |fruit| puts fruit }

nombres.map { |n| n * 2 }       # [2, 4, 6, 8, 10]
nombres.select { |n| n.even? }   # [2, 4]
nombres.reject { |n| n > 3 }     # [1, 2, 3]
nombres.reduce(:+)               # 15
nombres.min                      # 1
nombres.max                      # 5
Quick Check

Que retourne [1, 2, 3, 4, 5].select { |n| n.even? } ?

Quick Check

En Ruby, quelle est la différence entre puts et print ?

Learn AI, from prompts to agents

15 free guidesQuizzes, diagrams and workshopsNo account needed

Your progress

Progress is self-reported and stored in your browser. The final completion record is not a qualification or an independent assessment.

View progress and completion record

Learn AI, from prompts to agents

15 free guidesQuizzes, diagrams and workshopsNo account needed

One practical AI workflow in your inbox

Methods, resources and new exercises. Free, unsubscribe at any time.