05/09/14
CẤU TRÚC CHỌN
LỰA
05/09/14
Cấu trúc chọn lựa
Cú pháp
Dạng 1 :
if (điều kiện) <lệnh> ;
Dạng 2 :
if (điều kiện)
< lệnh 1> ;
else
< lệnh 2 > ;
05/09/14
Cấu trúc chọn lựa (tt)
Lưu ý
-Từ khóa if và else phải viết ở dạng chữ
thường
(thường hay mắc sai sót khi viết IF, iF, If,
Else, ELSE, )
- Dấu chấm phẩy phải có để kết thúc 1
phát biểu lệnh
Thường hay mắc lỗi!!!
05/09/14
Cấu trúc chọn lựa (tt)
using System;
class Test
{
static public void Main(String[] s)
{
int a=0, b=1,c=2;
If (a==b)
Console.WriteLine(a+b+c);
}
}
05/09/14
Cấu trúc chọn lựa (tt)
using System;
class Test
{
static public void Main(String[] s)
{
int a=0, b=1,c=2;
if (a==b)
Console.WriteLine(a+b+c) ///////
}
}
05/09/14
Cấu trúc chọn lựa (tt)
Lưu ý:
Toàn bộ điều kiện phải đặt trong cặp dấu
ngoặc tròn
Ví dụ
if (a>=b) Console.WriteLine(a);
if ( ( a+ b < c ) && ( a>=10 ) ) ……
Thường hay mắc lỗi!!!
05/09/14
Cấu trúc chọn lựa (tt)
using System;
class Test {
static public void Main(String[] s)
{ int a=0, b=1;
if a>b a=a+b;
}}
05/09/14
Cấu trúc chọn lựa (tt)
using System;
class Test {
static public void Main(String[] s)
{
int a=0, b=1,c=2;
if (a>b) && (a>c) Console.WriteLine(a+b+c);
} }
05/09/14
Cấu trúc chọn lựa (tt)
Lưu ý
Trong C# (và cả C, C++, Java ) thì phép
toán so sánh bằng nhau là ==
Ví dụ
if ( a = b ) a += 2* b ;
Trong C,C++ : hiệu ứng phụ
Trong Java, C# : thông báo lỗi
Thường hay mắc lỗi!!!
05/09/14
Cấu trúc chọn lựa (tt)
using System;
class Test {
static public void Main(String[] s)
{
int a=0, b=1,c=2;
if (a=b)
Console.WriteLine(a+b+c);
} }
05/09/14
Cấu trúc chọn lựa (tt)
Lưu ý
Tương tự như Pascal, C/C++,Java : nếu
có hơn 1 lệnh cần thực hiện → sử
dụng cặp dấu { và }
Ví dụ
if (a > b )
{
c = a+ (b++);
Console.WriteLine( c ) ;
}
05/09/14
Cấu trúc chọn lựa (tt)
Ví dụ
if (a ==0 )
{
if (b==0) Console.WriteLine(“VSN”);
else Console.WriteLine(“VN”);
}
else
{
c=-b/a;
Console.WriteLine( c ) ;
}
05/09/14
Cấu trúc chọn lựa (tt)
if (a ==0)
if (b == 0)
if (c ==0)
Console.WriteLine(“VSN”);
else Console.WriteLine(“VN”);
else Console.WriteLine(“ x = {0} “, -c/b);
else
{
delta = b*b - 4*a*c;
if (delta<0) Console.WriteLine(“VN”);
if (delta == 0) Console.WriteLine(“x1=x2=” + (-b/2/a) ) ;
if (delta > 0 ) {
x1 = (-b + Math.Sqrt(delta) ) / 2 / a ;
x2 = (-b - Math.Sqrt(delta) ) / 2 / a ;
Console.WriteLine(“ x1 = {0 } , x2 = {1} “, x1,x2);
}
}
05/09/14
Cấu trúc chọn lựa (tt)
Ví dụ các cấu trúc if else lồng
nhau
Một số cách sử dụng phương thức
Console.WriteLine
Phối hợp trong 1 biểu thức dạng chuỗi
Sử dụng tham số
Sử dụng các hàm toán học với lớp
Math (tra cứu trong System)
05/09/14
Cấu trúc chọn lựa (tt)
Cú pháp
switch (biểu thức)
{
case <giá trị 1> : lệnh ;
break;
case <giá trị 2> : lệnh ;
break;
…
default : lệnh ;
break;
}
05/09/14
Cấu trúc chọn lựa (tt)
Các từ khóa switch, case, default,
break phải viết ở dạng chữ thường
Ý nghĩa của default cũng tương tự
như ý nghĩa else trong cấu trúc
Case của ngôn ngữ Pascal
Với các giá trị có câu lệnh cần thực
hiện → kết thúc bằng phát biểu
break
Không cần cặp dấu { và }
05/09/14
Cấu trúc chọn lựa (tt)
switch (a%10)
{
case 1 : b = a>10 ? a+1 : a-1;
break;
case 2 :
case 3 :
case 4 : b= a + b;
c = a - b ;
if ((a + b ) > 20 ) {
c++;
a = a + 2;
}
break;
default : Console.WriteLine(a+b-c);
break;
}
- Liệt kê giá trị
- Không cần dấu { và }
- Cơ chế fall through
05/09/14
Cấu trúc chọn lựa (tt)
Lưu ý
Trong Pascal
<giá trị 1>, <giá trị 2> ,…, <giá trị N> :
Trong C#
case <giá trị 1> :
case <giá trị 2> :
………………
case <giá trị N> :
05/09/14
Cấu trúc chọn lựa (tt)
case 4 : b= a + b;
c = a - b ;
if ((a + b ) > 20 ) {
c++;
a = a + 2;
}
// break;
default : Console.WriteLine(a+b-c);
break;
Thường mắc sai sót nhưng sẽ có thông báo lỗi!!!!
05/09/14
Cấu trúc chọn lựa (tt)
Lưu ý : Cho phép sử dụng kiểu chuỗi (String) trong
switch (ngoài các kiểu liệt kê, nguyên, ký tự, bool( Điễm
mạnh!!!)
using System;
class Test
{
public static void Main()
{
String s = Console.ReadLine();
switch (s)
{
case "Thu Hai" : Console.WriteLine("Monday"); break;
case "Thu Ba" : Console.WriteLine("Tuesday"); break;
}
}
}