同学误入传销组织,还不到半个月就被人给放了,回来大家问他是什么情况?他不好意思的说:里面的头儿最后只说了一句话:再厉害的人也不可能通过洗脑改变你这个猪脑袋…
========================手动分割线==========================
今天的第一个知识点,也是后续大家用到的比较多的一个数据类型:bool
一、布尔bool类型
1.占有一个字节, 用来表示非真即假的数据类型;
2.将人能够识别的标识符和计算机能够识别的二进制结合在一起的数据类型,true == 1 , false == 0,示例代码如下:
bool day = true;
bool night = false;
Console.WriteLine ("day =" + day);
int a = Convert.ToInt32 (night);
Console.WriteLine ("a = " + a);
二、关系运算符: >, < , >= , <= , == , !=
1.由关系运算符组成的式子叫做关系表达式,
2.关系表达式的结果只有两种: 真 或者 假.
注意: 一个等号表示赋值,两个等号表示判断是否相等,并且中间不能有空格,示例代码如下:
int b = 10, c = 22;
//大于
bool result = b > c;
Console.WriteLine (result);
//小于等于
result = b <= c;
Console.WriteLine (result);
//不等于
result = b != c;
Console.WriteLine (result);
//等于
result = b == c;
Console.WriteLine (result);
三、逻辑运算符: 逻辑与: && 、逻辑或: || 、逻辑非 !
int i = 2, j = 7, k = 9;
- 逻辑与&& : 只有当运算符两侧同时为真,该式子才为真,否则为假 (一假则假)
bool res = (i < j) && (i == k);
Console.WriteLine (res);
res = (j >= i) && (j <= k);
Console.WriteLine (res);
- 逻辑或|| : 只有当运算符两侧同时为假,该式子才为假,否则为真(一真则真)
res = (j == k) || (j >= i);
Console.WriteLine (res);
- 逻辑非 ! : 取反,真变假, 假变真
res = !(j == k);
Console.WriteLine (res);
逻辑短路
1.逻辑与短路现象, 逻辑与只要左侧表达式为假时,就不在执行右侧的表达式
int d = 0;
res = (i > k) && Convert.ToBoolean (++d);
//d的值仍为0,因为右侧没有执行
Console.WriteLine (d);
2.逻辑或短路现象, 逻辑或只要左侧表达式为真时,就不在执行右侧的表达式
res = (i + j) >= k || Convert.ToBoolean (d++);
Console.WriteLine (d);
练习
从控制台输入3个数e, f, g,用逻辑运算符判断一下,f是否是最大数,如果是输出"True",否则输出"False".(先自己做,再看下面的答案哦)
int e = Convert.ToInt32 (Console.ReadLine ());
int f = Convert.ToInt32 (Console.ReadLine ());
int g = Convert.ToInt32 (Console.ReadLine ());
bool str1 = (f >= e) && (f >= g);
Console.WriteLine (str1);
四、C#程序的三大结构
1.顺序结构: 程序从Main函数进入后,代码从上往下,依次执行;
2.分支结构: 当程序执行到某个位置的时候,进行条件判断,根据 判断的结果来执行不同的操作;
3.循环结构: 程序执行到某个位置时,反复执行某段代码.
if分支结构
1、第一种结构,格式如下
if(条件表达式)
{
语句;
}
注意:
1.if语句后面的大括号我们可以省略,但是只有当条件成立执行的代码中仅有一条语句的时候才可以省略
2.一旦在条件后面添加分号,就意味着条件成立执行的是一条空语句
2、第二种分支结构,格式如下
if (条件表达式)
{
语句1;
} else
{
语句2;
}
执行顺序: 先判断条件表达式是否成立,如果成立,执行语句1,否则执行语句2
int x = 10, y = 20;
int max;
//求出x,y中的最大值,并赋值给max,将max进行输出
if (x > y) {
max = x;
} else {
max = y;
}
Console.WriteLine ("max = " + max);
练习
输入一个整数,判断其能不能被2和3整除,如果能输出"该数可以被2和3整除",否则 输出"不能整除"
int xx = int.Parse (Console.ReadLine ());
if (xx % 2 == 0 && xx % 3 == 0) {
Console.WriteLine ("该数可以被2和3整除");
} else {
Console.WriteLine ("不能整除");
}
输入一个年份,判断该年份是否是闰年?如果是闰年,则输出该年是闰年,否则输出该年不是闰年。闰年: 能被400整除或者(能被4整除,但是不能被100整除)
int year = int.Parse (Console.ReadLine ());
if ((year % 400 == 0) ||(year % 4 == 0 && year % 100 != 0)) {
Console.WriteLine ("该年是闰年");
} else {
Console.WriteLine ("该年不是闰年");
}
我们的运算符可以根据参与运算的操作数的个数进行分类:
1.单目运算符: ++ , -- , !
2.双目运算符: +, -, *,/,%,==,>, &&, ||, =等等
3.三目运算符: (? : ),三目运算符也叫条件表达式
格式: 条件表达式 ? 表达式1 : 表达式2
执行顺序: 判断条件表达式是否成立,如果成立返回表达式,否则返回表达式2
int m = 4, n = 5;
int max1 = 0;
max1 = m > n ? m : n;
Console.WriteLine ("max1 = " + max1);
3、第二种分支结构,格式如下
if (条件表达式1) {
语句1;
}else if(条件表达式2){
语句2;
}else{
语句3;
}
执行顺序: 如果条件表达式1成立,执行语句1,否则判断
条件表达式2,如果条件表达式2成立,执行语句2,否则执行语句3
练习
1.从控制台输入一个成绩,如果成绩在80-100之间,则输出优秀,如果成绩在60-80之间,则输出中等,否则输出不及格
int score = int.Parse (Console.ReadLine ());
if (score < 0 || score > 100) {
Console.WriteLine ("你咋这么厉害呢");
} else if (score >= 80) {
Console.WriteLine ("优秀");
} else if (score >= 60) {
Console.WriteLine ("中等");
} else {
Console.WriteLine ("回家种地");
}
2.从键盘上输入一个字符,
如果是数字,打印this is a digital
如果是大写字母,打印this is a capital letter
如果是小写字母,打印this is a letter
如果是其它字符,打印other
第一种方法:
int av = Console.Read ();
if (av >= 48 && av <= 57) {
Console.WriteLine ("\nthis is a digital");
} else if (av >= 65 && av <= 90) {
Console.WriteLine ("\nthis is a capital letter");
} else if (av >= 97 && av <= 122) {
Console.WriteLine ("\nthis is a letter");
} else {
Console.WriteLine ("\nother");
}
第二种方法:
char t = Convert.ToChar (Console.ReadLine ());
if (t >= '0' && t <= '9') {
Console.WriteLine ("this is a digital");
} else if (t >= 'A' && t <= 'Z') {
Console.WriteLine ("this is a capital letter");
} else if (t >= 'a' && t <= 'z') {
Console.WriteLine ("this is a letter");
} else {
Console.WriteLine ("other");
}
注: 字符可以直接参与运算,如果比较字符,实质是比较字符所对应的ASCII码值,把字符赋值给整型变量,其实质也是将字符所对应的ASCII码值赋值给整型变量,关于ASCII码的介绍,请点击这里
五. Switch语句
switch (表达式) {
case 值1:
语句1;
break;
case 值2:
语句2;
break;
case ...:
语句...;
break;
default:
语句;
break;
}
注意:
1.switch后的表达式类型要与case后的 值的类型保持一致
2.case后面必须是常量或者常量表达式,不能用变量
3.case后面只要有语句,必须加上break,break用于跳出当前操作
4.default语句可有可无,如果有的话只能有一个
5.switch后的表达式不能是浮点型,可以是int,string,bool,char...
6.switch中多个case可以执行同一条语句
简易的计算器
int u = 2, v = 4;
string w = Console.ReadLine ();
int value = 0;
switch (w) {
case "+":
value = u + v;
break;
case "-":
value = u - v;
break;
case "*":
value = u * v;
break;
case "/":
value = u / v;
break;
default:
Console.WriteLine ("请输入四则运算符");
break;
}
Console.WriteLine ("value = " + value);
练习
从键盘输出一个整数1~4,对应打出春夏秋冬的英语单词
int num = int.Parse (Console.ReadLine ());
switch (num) {
case 1:
Console.WriteLine ("Spring");
break;
case 2:
Console.WriteLine ("Summer");
break;
case 3:
Console.WriteLine ("Autumn");
break;
case 4:
Console.WriteLine ("Winter");
break;
default:
Console.WriteLine ("请输入1-4之间的整数");
break;
}
本次讲解就到这里,有关技术问题请小伙伴们添加QQ群:941928511,大家一起探讨!
版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明