Trang chủ Liên hệ

Bài 9 C# cơ bản - Cấu trúc rẽ nhánh If else trong C#

CÔNG TY TNHH THIẾT BỊ ĐO LƯỜNG VÀ ĐIỀU KHIỂN 26/02/2023

Nội dung

Để đọc hiểu bài này tốt nhất các bạn nên có kiến thức cơ bản về các phần:

 Trong bài học này, chúng ta sẽ cùng tìm hiểu các vấn đề:

Cấu trúc rẽ nhánh là gì? Có mấy loại cấu trúc rẽ nhánh

Xét 2 mệnh đề sau:

Các bạn để ý những chữ in đậm trong 2 mệnh đề trên. Cấu trúc Nếu. . . thì. . . hoặc Nếu. . . thì. . . ngược lại thì. . . được gọi là cấu trúc rẽ nhánh.

Trong hầu hết các ngôn ngữ lập trình đều có loại cấu trúc rẽ nhánh:

Cấu trúc rẽ nhánh If. . . else. . . còn có tên gọi khác là “câu lệnh điều kiện”.

Cấu trúc If else dạng thiếu và dạng đủ

Dạng thiếu

Cú pháp: If ([Biểu thức điều kiện]<Câu lệnh thực hiện>

Ý nghĩa: Nếu <Biểu thức điều kiện> trả về true thì thực hiện <Câu lệnh thực hiện> ngược lại thì không làm gì cả.

Ví dụ: 

string K = "MC&TT";
if (K == "MC&TT") 
// Biểu thức điều kiện sử dụng toán tử == đề so sánh xem giá trị biến K có bằng “MC&TT” hay không. Nếu bằng trả thì trả về true ngược lại thì trả về false.
 Console.WriteLine("Free Education"); // In ra màn hình chữ “Free Education” nếu biểu thức trên đúng.

Dạng đủ

Cú pháp:

If <Biểu thức điều kiện>

              <Câu lệnh thực hiện 1>

else

              <Câu lệnh thực hiện 2>

Ý nghĩa:

Nếu <Biểu thức điều kiện> trả về true thì thực hiện <Câu lệnh thực hiện 1> ngược lại thì thực hiện <Câu lệnh thực hiện 2>.

Ví dụ:

string K = "MCTT";

if (K == "MCTT") // Nếu giá trị K bằng “MCTT” thì
    Console.WriteLine("Free Education"); // In ra màn hình “Free Education”
else // Ngược lại thì
                Console.WriteLine("Connecting to MCTT. . ."); // In ra màn hình “Connecting to MCTT. . .”

Một số lưu ý khi sử dụng câu lệnh điều kiện

<Biểu thức điều kiện> có thể chứa nhiều biểu thức con bên trong và các biểu thức con liên kết với nhau bằng các toán tử quan hệ (toán tử quan hệ đã được trình bày trong bài  TOÁN TỬ TRONG C#) nhưng tất cả phải trả về kiểu boolean (true hoặc false).

Nếu muốn thực hiện nhiều câu lệnh thì ta có thể nhóm chúng vào trong cặp ngoặc nhọn { }.

Ví dụ:

If <Biểu thức điều kiện>
{
             <Câu lệnh thực hiện>
}

Hoặc

If <Biểu thức điều kiện>
{
             <Câu lệnh thực hiện 1>
}

Else
{
             <Câu lệnh thực hiện 2>
}

Lời khuyên là cho dù chỉ thực hiện 1 câu lệnh vẫn để trong cặp ngoặc nhọn { } để code rõ ràng, dễ đọc, dễ nâng cấp sữa chữa.

Trong câu lệnh có thể chứa một câu lệnh điều kiện con nữa. Bạn có thể vận dụng điều này để làm giải quyết những vấn đề phức tạp.

Ví dụ chương trình sử dụng cấu trúc If else

Ví dụ: Viết chương trình giải phương trình bậc 1: Ax + B = 0.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Bai_09_01
{
    class Program
    {
        static void Main(string[] args)
        {
            string StrA, StrB;
            int A, B;
            double KQ;

            Console.WriteLine("**** Giai Phuong Trinh Ax+B =0 ****");
            Console.Write("Nhap he so A = ");
            StrA = Console.ReadLine();
            Console.Write("Nhap he so B = ");
            StrB = Console.ReadLine();

            if (int.TryParse(StrA, out A) ==false || int.TryParse(StrB, out B ) == false)
            {
                Console.WriteLine("Du lieu nhap sai !");
                return;
            }
            else
            {
                Console.WriteLine("\n Giai phuong trinh {0}x + {1} = 0", A, B);
            if (A ==0)
                {
                    Console.WriteLine("\n Phuong trinh vo nghiem !");
                }
            else if (B==0)
                {
                    Console.WriteLine("\n Phuong trinh co nghiem x =0");
                }
             else
                {
                    KQ = (double)-B / A; //ep kieu B sang so thuc
                    Console.WriteLine("\n Phuong trinh co nghiem x = {0}", KQ);
                } 
                    
            }

            Console.ReadKey();
        }
    }
}

Bài tập tự luyện

  1. Viết chương trình nhập vào một số tương ứng là năm. Xuất ra màn hình năm vừa nhập và tuổi của một người tương ứng với năm vừa nhập đó

- Nếu tuổi người đó < 16 thì hiện thông báo theo format: Bạn <Tuổi>, tuổi vị thành niên.

- Nếu tuổi người đó >= 16 và <18 thì hiện thông báo theo format: Bạn <Tuổi>, tuổi trưởng thành.

- Nếu tuổi người đó >= 18 thì hiện thông báo theo format: Bạn <Tuổi>, già rồi.

Code: 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Bai_09_02
{
    class Program
    {
        static void Main(string[] args)
        {
            int NamSinh;
            string StrNamSinh;
            int SoTuoi;
            

            Console.Write("Nhap nam sinh cua ban : ");
            StrNamSinh = Console.ReadLine();
            if (int.TryParse(StrNamSinh, out NamSinh)==false)
            {
                Console.WriteLine(" Nhap nam sinh bi sai ");
                Console.ReadLine();
                return;
            } 
           else
            {
                SoTuoi = DateTime.Now.Year - NamSinh;
            }
            if (SoTuoi < 16)
            {
                Console.WriteLine("\n Ban {0}, Tuoi thanh niên ", SoTuoi);
            }
            else if (SoTuoi >=16 & SoTuoi <18)
            {
                Console.WriteLine("\n Ban {0}, Tuoi truong thanh ", SoTuoi);
            }
            else
            {
                Console.WriteLine("\n Ban {0}, Tuoi gia ", SoTuoi);
            }
            Console.ReadKey();
        }        
    }
}

2. Viết trò chơi Kéo Búa Bao với cách chơi: Người dùng sẽ nhập vào các số 1 hoặc 2 hoặc 3 tương ứng với kéo hoặc búa hoặc bao. Máy sẽ ngẫu nhiên sinh ra một số trong 3 số và tính toán máy hoặc người chiến thắng. in kết quả ra màn hình.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Bai_09_03
{
    class Program
    {
        static void Main(string[] args)
        {
            string StrLuaChon, StrKetQua;
            int LuaChon, KetQua;
            Random NgauNhien = new Random();
            int LuaChonMay = NgauNhien.Next(1, 3);//Tao so ngau nhien

            Console.WriteLine("**** Tro choi Keo -  Bua - Bao ****");

        Nhap:
            Console.WriteLine("Quy uoc so 1 la Keo, 2 la Bua, 3 la Bao ");
            Console.Write("Moi ban nhap so tu 1 den 3 : ");
            StrLuaChon = Console.ReadLine();
            bool CheckNhap = int.TryParse(StrLuaChon, out LuaChon);
            if (!CheckNhap)
            {
                Console.WriteLine("Vui long nhap so ! ");
                goto Nhap;
            }
            else if (LuaChon < 1 || LuaChon > 3)
            {
                Console.WriteLine("Vui long nhap so tu 1 den 3 !");
                goto Nhap;
            }
            else
            {
                goto KetQua;
            }
        KetQua:
            KetQua = LuaChon - LuaChonMay;
            if (KetQua == 0)
            {
                StrKetQua = "Hoa";
            }
            else if (KetQua == 1 || KetQua ==-2)
            {
                StrKetQua = "Ban Thang, Xin chuc mung !";
            }
            else
            {
                StrKetQua = "Ban Thua roi, hay thu choi lai !";
            }
            Console.WriteLine($"Ket Qua : " + StrKetQua);
            Console.ReadKey();
        }
    }
}

Kết luận

Nội dung bài này giúp các bạn nắm được:

Bài học sau chúng ta sẽ cùng tìm hiểu một khái niệm tiếp theo đó là CẤU TRÚC RẼ NHÀNH SWITCH - CASE TRONG C#.

Bài viết liên quan