C#基础-常用表达式和分支结构-03

同学误入传销组织,还不到半个月就被人给放了,回来大家问他是什么情况?他不好意思的说:里面的头儿最后只说了一句话:再厉害的人也不可能通过洗脑改变你这个猪脑袋…



========================手动分割线==========================

今天的第一个知识点,也是后续大家用到的比较多的一个数据类型: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;
  1. 逻辑与&& : 只有当运算符两侧同时为真,该式子才为真,否则为假 (一假则假)
bool res = (i < j) && (i == k);
Console.WriteLine (res);

res = (j >= i) && (j <= k);
Console.WriteLine (res);
  1. 逻辑或|| : 只有当运算符两侧同时为假,该式子才为假,否则为真(一真则真)
res = (j == k) || (j >= i);
Console.WriteLine (res);
  1. 逻辑非 ! : 取反,真变假, 假变真
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,大家一起探讨!
版权声明:本文为博主原创文章,转载请附上原文出处链接和本声明

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,176评论 5 469
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,190评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,232评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,953评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,879评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,177评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,626评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,295评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,436评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,365评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,414评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,096评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,685评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,771评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,987评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,438评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,032评论 2 341

推荐阅读更多精彩内容