C#基础学习笔记(二)

1、Convert类型转换

类型如果相兼容的两个变量,可以使用自动类型转换或者强制类型转换,

但是,如果两个类型的变量不兼容,比如 string与int或者string 与double,

这个时候我们可以使用一个叫做Convert的转换工厂进行转换。

注意:使用Convert进行类型转换,也需要满足一个条件:

面儿上必须要过的去。如果123abc就不行

    1 string s = "123";

    2 //将字符串转换成int或者double类型

    3 double d = Convert.ToDouble(s);

    4 int n = Convert.ToInt32(s);

    5 Console.WriteLine(d);

    6 Console.WriteLine(n);

 

通过 Convert.ToInt32(能转换成int类型的数据)来把其他类型数据转换成int类型

  • 一切类型都可以转换为string类型

 

练习:

让用户输入姓名 语文 数学 英语 三门课的成绩,然后给用户显示:XX,你的总成绩为XX分,平均成绩为XX分。

    1 Console.WriteLine("请输入你的姓名");

    2 string name = Console.ReadLine();

    3 Console.WriteLine("请输入你的语文成绩");

    4 string strChinese = Console.ReadLine();//读取输入的东西要存在string里面

    5 Console.WriteLine("请输入你的数学成绩");

    6 string strMath = Console.ReadLine();

    7 Console.WriteLine("请输入你的英语成绩");

    8 string strEnglish = Console.ReadLine(); //如果直接加就是778899,要转类型

    9 double Chinese = Convert.ToDouble(strChinese);

   10 double Math = Convert.ToDouble(strMath);

   11 double English = Convert.ToDouble(strEnglish);

   12 double SumScore = Chinese + Math + English;

   13 double AvgDcore = SumScore / 3; //(int)SumScore*1.0 / 3;

   14 Console.WriteLine("{0},你的总成绩为{1}分,平均成绩为{2:0.00}", name, SumScore, AvgDcore);

 

练习2:

    1 //输入一个数字,输出这个数的2

    2 Console.WriteLine("请输入一个数字");

    3 string StrNumber = Console.ReadLine();

    4 double Number = Convert.ToDouble(StrNumber);

    5 Console.WriteLine(Number * 2);

简化一下

    1 Console.WriteLine("请输入一个数字");

    2 double Number = Convert.ToDouble(Console.ReadLine());

    3 Console.WriteLine(Number * 2);

 

 

2、算数运算符

++:分为前++和后++,不管是前++还是后++,最终的结果都是给这个变量加一。

区别表现表达式当中,

如果是前++,则先给这个变量自身加一,然后带着这个加一后的值去参与运算。

即先加再参与运算

如果是后++,则先拿原值参与运算,运算完成后,再讲这个变量自身加一。

即先参与运算再加

--:同上。

例:

    1 int number = 10;

    2 //number++;     //+1

    3 //++number;     //一样+1  可以理解为number=number+1;

    4

    5 //number--;     //-1

    6 --number;       //一样--  同上

    7 Console.WriteLine(number);

例2:

    1 int number = 10;

    2 int result = 10 + number++;

    3 //++在后面表示先用原值进行运算再加1

    4 //可以写成

    5 int result = 10 + number;

    6 number++;

    7

    8 int result = 10 + ++number;

    9 //++在前面表示先加1再进行运算

   10 //可以写成

   11 number++;

   12 int result = 10 + number;

   13

   14 Console.WriteLine(number);

   15 Console.WriteLine(result);

--亦是如此

例3:

    1 int a = 5;

    2 int b = a++ + ++a * 2 + --a + a++;  //5 + 7*2 +6 +6=31 最终a7

    3 //      5       前面也要执行++所以现在是6,所以为7

    4 Console.WriteLine(a);   //5  这是错误的

    5 Console.WriteLine(b);   //5+6*2+4+5=26

3、运算优先级

对于向加加或者减减这样只需要一个操作数就能完成的运算,我们称之为一元运算符。

+ - * / % 对于这些需要两个或以上才能完成运算的操作符,我们称之为二元运算符。

一元运算符的优先级要高于二元运算符

如果在一个表达式当中,既有一元运算符,又有二元运算符,我们首先计算一元运算符。

 

int number=10;

int result=10 + ++number; 先计算

练习:

Var=5*5=25  var2=6   var3=5

上题中如果改成:

Var1=++var2 * var3--;

Var1=?

 

Var1=6*6=36   var2=6   var3=5

 

4、关系运算符

>

<

>=

<=

==

!=

关系运算符是用来描述两个事物之间的关系

由关系运算符连接的表达式称之为关系表达式。

 

 

5、bool类型

在c#中我们用bool类型来描述对或者错

bool类型的值只有两个 一个true  一个false

    1 bool b = 1500 > 1;  //true

    2 bool b = 3 > 1000;  //false

    3 bool b = 39 < 18;   //false

    4 bool b = 20 == 20;  //true    

 

6、逻辑运算符

&&  逻辑与 全真则真

||      逻辑或 一真则真

!       逻辑非

 

逻辑与&&

表达式1

表达式2

表达式&&表达式

 

逻辑或||

表达式1

表达式2

表达式||表达式

 

又逻辑运算符连接的表达式叫做逻辑表达式

 

逻辑运算符两边放的一般都是关系表达式或者bool类型的值。

 5>3 &&true

 

 3>5||false

逻辑与先计算

短路原则

一个的话没有短路,不推荐

 

 !表达式

 逻辑表达式的结果同样也是bool类型

练习:

    1 //让用户输入老苏的语文和数学成绩,输出以下判断是否正确,正确输出True,错误输出False

    2 //1)老苏的语文和数学成绩都大于90

    3 Console.WriteLine("小苏,请输入你的语文成绩");

    4 int Chinese = Convert.ToInt32(Console.ReadLine());

    5 Console.WriteLine("小苏,请输入你的数学成绩");

    6 int Math = Convert.ToInt32(Console.ReadLine());

    7 //bool b = Chinese > 90 && Math > 90;

    8 //Console.WriteLine(b);

    9 //Console.ReadKey();

   10

   11 //2)语文和数学有一门是大于90分的

   12 bool b = Chinese > 90 || Math > 90;

   13 Console.WriteLine(b);

   14 Console.ReadKey();

练习2:

写下判断闰年的表达式,设待判断的年份变量为year.

润年的判定(符合下面两个条件之一):

年份能够被400整除.(2000)

年份能够被4整除但不能被100整除.(2008)

让用户输入一个年份,如果是润年,则输出true,如果不是,则输出false.

2100/1600/1800/2009年是闰年吗?

    1 Console.WriteLine("请输入需要判断的年份");

    2 int year = Convert.ToInt32(Console.ReadLine());

    3 bool b = (year % 400 == 0) || (year % 4 == 0 && year % 100 != 0);

    4 //先与后或,与的优先级高于或

    5 Console.WriteLine(b);

 

 

 

7、复合赋值运算符

int number=10;

+= :

number+=20;

number=number+20; 30

-=

number-=5;

number=number-5; 5

*=

number*=5;

number=number*5; 50

/=

%=

 

 

 

顺序结构:程序从Main函数进入,从上到下一行一行的执行,不会落下任何一行。

分支结构:if  if-else

选择结构:if else-if switch-case

循环结构:while do-while for foreach

 

8、if结构

if语句:

语法:

if(判断条件)

{

要执行的代码;

}

判断条件:一般为关系表达式或者bool类型的值。

执行过程:程序运行到if处,首先判断if所带的小括号中的判断条件,

如果条件成立,也就是返回true,则执行if所带的大括号中的代码,

如果判断条件不成立,也就是返回一个false。则跳过if结构,继续向下执行。

 

if结构的特点:先判断,再执行,有可能一行代码都不执行

用于一种情况的判断。

小练习:

    1 //如果老苏的(chinese  music)

    2 //语文成绩大于90并且音乐成绩大于80

    3 //语文成绩等于100并且音乐成绩大于70,则奖励100.

    4

    5 Console.WriteLine("请输入语文成绩");

    6 int Chinese = Convert.ToInt32(Console.ReadLine());

    7 Console.WriteLine("请输入音乐成绩");

    8 int music = Convert.ToInt32(Console.ReadLine());

    9

   10 if ((Chinese > 90 && music > 80) || (Chinese == 100 && music > 70))

   11 {

   12     Console.WriteLine("奖励100");

   13 }

小练习2:

    1 //让用户输入用户名和密码,如果用户名为admin,密码为mypass,则提示登录成功.

    2 Console.WriteLine("请输入用户名");

    3 string name = Console.ReadLine();

    4 Console.WriteLine("请输入密码");

    5 string password = Console.ReadLine();

    6

    7 if (name == "admin" && password == "mypass")

    8 {

    9     Console.WriteLine("登录成功");

   10 }

 

 

 

9、if-else

语法:

if(判断条件)

{

执行的代码;

}

else

{

执行的代码

}

执行过程:程序执行到if处,首先判断if所带的小括号中的判断条件是否成立,

如果成立,也就是返回一个true,则执行if所带的大括号中的代码,

执行完成后,跳出if-else结构。

如果if所带的小括号中的判断条件不成立,也就是返回一个false,

则跳过if语句,执行else所带的大括号中的语句,执行完成后,跳出if-else结构。

 

if-else特点:先判断,再执行,最少都要执行一条代码。

用于两种情况的判断

 

注意:else永远跟离它最近的那个if配对

练习

    1 //如果小赵的考试成绩大于90(),那么爸爸奖励他100元钱,

    2 //否则的话,爸爸就让小赵跪方便面.

    3 Console.WriteLine("请输入小赵的考试成绩");

    4 int score = Convert.ToInt32(Console.ReadLine());

    5

    6 if (score >= 90)

    7 {

    8     Console.WriteLine("100");

    9 }

   10 else

   11 {

   12     Console.WriteLine("跪方便面");

   13 }

 

 

10、if else-if

作用:用来处理多条件的区间性的判断。

语法:

if(判断条件)

{

要执行的代码;

}

else if(判断条件)

{

要执行的代码;

}

else if(判断条件)

{

要执行的代码;

}

else if(判断条件)

{

要执行的代码;

}

........

else

{

要执行的代码;

}

执行过程;程序首先判断第一个if所带的小括号中的判断条件,如果条件成立,也就是返回一个true,

则执行该if所带的大括号中的代码,执行完成后,立即跳出if else-if结构。

如果第一个if所带的判断条件不成立,也就是返回一个false,则继续向下进行判断,依次的判断每一个if所带

的判断条件,如果成立,就执行该if所带的大括号中的代码,如果不成立,则继续向下判断,

如果每个if所带的判断条件都不成立,就看当前这个if else-if结构中是否存在else。

如果有else的话,则执行else中所带的代码,如果没有else,则整个 if-else if神马都不做。

else可以省略。

练习:

    1 //对学员的结业考试成绩评测(考虑用if好还是用if-else)

    2             //成绩 >= 90 A

    3             //90 > 成绩 >= 80 B

    4             //80 > 成绩 >= 70 C

    5             //70 > 成绩 >= 60 D

    6             //成绩 < 60  E

    7             Console.WriteLine("请输入学员的考试成绩");

    8             int score = Convert.ToInt32(Console.ReadLine());

    9             

   10             #region if的做法

   11             if (score >= 90)

   12             {

   13                 Console.WriteLine("A");

   14             }

   15             if (score >= 80 && score < 90)

   16             {

   17                 Console.WriteLine("B");

   18             }

   19             if (score >= 70 && score < 80)

   20             {

   21                 Console.WriteLine("C");

   22             }

   23             if (score >= 60 && score < 70)

   24             {

   25                 Console.WriteLine("D");

   26             }

   27             if (score < 60)

   28             {

   29                 Console.WriteLine("E");

   30             }

   31             else 注意else永远跟离它最近的那个if配对 所以不能直接写

   32             {

   33                 Console.WriteLine("");

   34             }

   35             #endregion

   36           

   37             #region if-else的做法(不推荐)else-if更好

   38             if (score >= 90)

   39             {

   40                 Console.WriteLine("A");

   41             }

   42             else    //里边的都是<90

   43             {

   44                 if (score >= 80)

   45                 {

   46                     Console.WriteLine("B");

   47                 }

   48                 else    //<80

   49                 {

   50                     if (score >= 70)

   51                     {

   52                         Console.WriteLine("C");

   53                     }

   54                     else    //<70

   55                     {

   56                         if (score >= 60)

   57                         {

   58                             Console.WriteLine("D");

   59                         }

   60                         else    //<60

   61                         {

   62                             Console.WriteLine("E");

   63                         }

   64                     }

   65                 }

   66             }

   67             #endregion

   68           

   69             #region 最好的方法else-if

   70             if (score >= 90)

   71             {

   72                 Console.WriteLine("A");

   73             }

   74             else if (score >= 80)

   75             {

   76                 Console.WriteLine("B");

   77             }

   78             else if (score >= 70)

   79             {

   80                 Console.WriteLine("C");

   81             }

   82             else if (score >= 60)

   83             {

   84                 Console.WriteLine("D");

   85             }

   86             else

   87             {

   88                 Console.WriteLine("E");

   89             }

   90             #endregion

总结

if处理一种情况

If-else处理两种情况

if else-if处理多种情况

 

几个练习:

题1:

    1 #region 1

    2 //比较3个数字的大小,不考虑相等 输出最大数

    3 Console.WriteLine("请输入第一个数字");

    4 int num1 = Convert.ToInt32(Console.ReadLine());

    5 Console.WriteLine("请输入第二个数字");

    6 int num2 = Convert.ToInt32(Console.ReadLine());

    7 Console.WriteLine("请输入第三个数字");

    8 int num3 = Convert.ToInt32(Console.ReadLine());

    9 #region 1

   10 //第一个数比其他数大

   11 if (num1 > num2 && num1 > num3)

   12 {

   13     Console.WriteLine(num1);

   14 }

   15 //第二个数比其他数大

   16 else if (num2 > num1 && num2 > num3)

   17 {

   18     Console.WriteLine(num2);

   19 }

   20 //第三个数比其他数大

   21 else

   22 {

   23     Console.WriteLine(num3);

   24 }

   25 #endregion

   26 #region 2

   27 //先让第一个数字和第二个数字比较,如果大于第二个数字,再和第三个数字比较

   28 if (num1 > num2)

   29 {

   30     //如果第一个数字比第二个数字大,在和第三个数字比较,成立则最大

   31     if (num1 > num3)

   32     {

   33         Console.WriteLine(num1);

   34     }

   35     //否则第三个数字比第一个大,又因为第一比第二大

   36     else

   37     {

   38         Console.WriteLine(num3);

   39     }

   40 }

   41 //第二个数字大于第一个数字,让第二个和第三个比较,若第二个比第三个大则最大

   42 else

   43 {

   44     if (num2 > num3)

   45     {

   46         Console.WriteLine(num2);

   47     }

   48     //第三个最大

   49     else

   50     {

   51         Console.WriteLine(num3);

   52     }

   53 }

   54 #endregion

   55

   56 #endregion

题2:

    1 //提示用户输入密如果密码是88888则提示正确,

    2 //否则要求再输入一次,如果密码是88888则提示正确,

    3 //否则提示错误,程序结束。

    4 //(如果我的密码里有英文还要转换吗,密码:abc1)

    5

    6 Console.WriteLine("请输入密码");

    7 string password = Console.ReadLine();

    8 if (password == "88888")

    9 {

   10     Console.WriteLine("输入正确");

   11 }

   12 else

   13 {

   14     Console.WriteLine("请再输入一次");

   15     password = Console.ReadLine();

   16     if (password == "88888")

   17     {

   18         Console.WriteLine("输入正确");

   19     }

   20     else

   21     {

   22         Console.WriteLine("错误");

   23     }

   24 }

题3:

    1 //提示用户输入用户名,然后再提示输入密码,

    2 //如果用户名是admin并且密码是88888,则提示正确,

    3 //否则,如果用户名不是admin还提示用户用户名不存在,

    4 //如果用户名是admin则提示密码错误.

    5 //多种情况使用else-if

    6

    7 Console.WriteLine("请输入用户名");

    8 string username = Console.ReadLine();

    9 Console.WriteLine("请输入密码");

   10 string password = Console.ReadLine();

   11 if (username == "admin" && password == "88888")

   12 {

   13     Console.WriteLine("正确");

   14 }

   15 else if (username == "admin")

   16 {

   17     Console.WriteLine("密码错误");

   18 }

   19 else if (password == "88888")

   20 {

   21     Console.WriteLine("用户名错误");

   22 }

   23 else

   24 {

   25     Console.WriteLine("全部错误,退出");

   26 }

题4:

    1 //提示用户输入年龄,如果大于等于18,则告知用户可以查看,

    2 //如果小于10岁,则告知不允许查看,

    3 //如果大于等于10岁并且小于18,则提示用户是否继续查看(yesno),

    4 //如果输入的是yes则提示用户请查看,否则提示"退出,你放弃查看"

    5

    6 Console.WriteLine("请输入年龄");

    7 int age = Convert.ToInt32(Console.ReadLine());

    8 if (age >= 18)

    9 {

   10     Console.WriteLine("可以继续查看");

   11 }

   12 else if (age < 10)

   13 {

   14     Console.WriteLine("不允许查看");

   15 }

   16 else if (age >= 10 && age < 18)

   17 {

   18     Console.WriteLine("是否继续查看(yesno");

   19     string option = Console.ReadLine();

   20     if (option == "yes")

   21     {

   22         Console.WriteLine("请查看");

   23     }

   24     else if (option == "no")

   25     {

   26         Console.WriteLine("退出,你放弃查看");

   27     }

   28     //else

   29     //{

   30     //    Console.WriteLine("退出,你放弃查看");

   31     //}

   32 }

 

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值