热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C#基础学习笔记(二)

1、Convert类型转换类型如果相兼容的两个变量,可以使用自动类型转换或者强制类型转换,但是,如果两个类型的变量不兼容,比

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、关系运算符

>

<

>&#61;

<&#61;

&#61;&#61;

!&#61;

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

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

 

 

5、bool类型

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

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

    1 bool b &#61; 1500 > 1;  //true

    2 bool b &#61; 3 > 1000;  //false

    3 bool b &#61; 39 <18;   //false

    4 bool b &#61; 20 &#61;&#61; 20;  //true    

 

6、逻辑运算符

&&  逻辑与 全真则真

||      逻辑或 一真则真

!       逻辑非

 

逻辑与&&

表达式1

表达式2

表达式&&表达式

 

逻辑或||

表达式1

表达式2

表达式||表达式

 

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

 

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

 5>3 &&true

 

 3>5||false

逻辑与先计算

短路原则

一个的话没有短路&#xff0c;不推荐

 

 &#xff01;表达式

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

练习&#xff1a;

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

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

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

    4 int Chinese &#61; Convert.ToInt32(Console.ReadLine());

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

    6 int Math &#61; Convert.ToInt32(Console.ReadLine());

    7 //bool b &#61; Chinese > 90 && Math > 90;

    8 //Console.WriteLine(b);

    9 //Console.ReadKey();

   10

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

   12 bool b &#61; Chinese > 90 || Math > 90;

   13 Console.WriteLine(b);

   14 Console.ReadKey();

练习2&#xff1a;

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

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

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

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

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

2100/1600/1800/2009年是闰年吗&#xff1f;

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

    2 int year &#61; Convert.ToInt32(Console.ReadLine());

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

    4 //先与后或&#xff0c;与的优先级高于或

    5 Console.WriteLine(b);

 

 

 

7、复合赋值运算符

int number&#61;10;

&#43;&#61; :

number&#43;&#61;20;

number&#61;number&#43;20; 30

-&#61;

number-&#61;5;

number&#61;number-5; 5

*&#61;

number*&#61;5;

number&#61;number*5; 50

/&#61;

%&#61;

 

 

 

顺序结构&#xff1a;程序从Main函数进入&#xff0c;从上到下一行一行的执行&#xff0c;不会落下任何一行。

分支结构:if  if-else

选择结构&#xff1a;if else-if switch-case

循环结构&#xff1a;while do-while for foreach

 

8、if结构

if语句&#xff1a;

语法&#xff1a;

if(判断条件)

{

要执行的代码;

}

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

执行过程&#xff1a;程序运行到if处&#xff0c;首先判断if所带的小括号中的判断条件&#xff0c;

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

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

 

if结构的特点&#xff1a;先判断&#xff0c;再执行&#xff0c;有可能一行代码都不执行

用于一种情况的判断。

小练习&#xff1a;

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

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

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

    4

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

    6 int Chinese &#61; Convert.ToInt32(Console.ReadLine());

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

    8 int music &#61; Convert.ToInt32(Console.ReadLine());

    9

   10 if ((Chinese > 90 && music > 80) || (Chinese &#61;&#61; 100 && music > 70))

   11 {

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

   13 }

小练习2&#xff1a;

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

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

    3 string name &#61; Console.ReadLine();

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

    5 string password &#61; Console.ReadLine();

    6

    7 if (name &#61;&#61; "admin" && password &#61;&#61; "mypass")

    8 {

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

   10 }

 

 

 

9、if-else

语法&#xff1a;

if(判断条件)

{

执行的代码;

}

else

{

执行的代码

}

执行过程&#xff1a;程序执行到if处&#xff0c;首先判断if所带的小括号中的判断条件是否成立&#xff0c;

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

执行完成后&#xff0c;跳出if-else结构。

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

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

 

if-else特点&#xff1a;先判断&#xff0c;再执行&#xff0c;最少都要执行一条代码。

用于两种情况的判断

 

注意&#xff1a;else永远跟离它最近的那个if配对

练习

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

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

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

    4 int score &#61; Convert.ToInt32(Console.ReadLine());

    5

    6 if (score >&#61; 90)

    7 {

    8     Console.WriteLine("100");

    9 }

   10 else

   11 {

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

   13 }

 

 

10、if else-if

作用&#xff1a;用来处理多条件的区间性的判断。

语法&#xff1a;

if(判断条件)

{

要执行的代码;

}

else if(判断条件)

{

要执行的代码;

}

else if(判断条件)

{

要执行的代码;

}

else if(判断条件)

{

要执行的代码;

}

........

else

{

要执行的代码;

}

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

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

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

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

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

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

else可以省略。

练习&#xff1a;

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

    2             //成绩 >&#61; 90 &#xff1a;A

    3             //90 > 成绩 >&#61; 80 &#xff1a;B

    4             //80 > 成绩 >&#61; 70 &#xff1a;C

    5             //70 > 成绩 >&#61; 60 &#xff1a;D

    6             //成绩 <60  &#xff1a;E

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

    8             int score &#61; Convert.ToInt32(Console.ReadLine());

    9             

   10             #region if的做法

   11             if (score >&#61; 90)

   12             {

   13                 Console.WriteLine("A");

   14             }

   15             if (score >&#61; 80 && score <90)

   16             {

   17                 Console.WriteLine("B");

   18             }

   19             if (score >&#61; 70 && score <80)

   20             {

   21                 Console.WriteLine("C");

   22             }

   23             if (score >&#61; 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的做法&#xff08;不推荐&#xff09;else-if更好

   38             if (score >&#61; 90)

   39             {

   40                 Console.WriteLine("A");

   41             }

   42             else    //里边的都是<90

   43             {

   44                 if (score >&#61; 80)

   45                 {

   46                     Console.WriteLine("B");

   47                 }

   48                 else    //<80

   49                 {

   50                     if (score >&#61; 70)

   51                     {

   52                         Console.WriteLine("C");

   53                     }

   54                     else    //<70

   55                     {

   56                         if (score >&#61; 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 >&#61; 90)

   71             {

   72                 Console.WriteLine("A");

   73             }

   74             else if (score >&#61; 80)

   75             {

   76                 Console.WriteLine("B");

   77             }

   78             else if (score >&#61; 70)

   79             {

   80                 Console.WriteLine("C");

   81             }

   82             else if (score >&#61; 60)

   83             {

   84                 Console.WriteLine("D");

   85             }

   86             else

   87             {

   88                 Console.WriteLine("E");

   89             }

   90             #endregion

总结

if处理一种情况

If-else处理两种情况

if else-if处理多种情况

 

几个练习&#xff1a;

题1&#xff1a;

    1 #region 1

    2 //比较3个数字的大小&#xff0c;不考虑相等 输出最大数

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

    4 int num1 &#61; Convert.ToInt32(Console.ReadLine());

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

    6 int num2 &#61; Convert.ToInt32(Console.ReadLine());

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

    8 int num3 &#61; 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 //先让第一个数字和第二个数字比较&#xff0c;如果大于第二个数字&#xff0c;再和第三个数字比较

   28 if (num1 > num2)

   29 {

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

   31     if (num1 > num3)

   32     {

   33         Console.WriteLine(num1);

   34     }

   35     //否则第三个数字比第一个大&#xff0c;又因为第一比第二大

   36     else

   37     {

   38         Console.WriteLine(num3);

   39     }

   40 }

   41 //第二个数字大于第一个数字&#xff0c;让第二个和第三个比较&#xff0c;若第二个比第三个大则最大

   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&#xff1a;

    1 //提示用户输入密如果密码是88888则提示正确&#xff0c;

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

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

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

    5

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

    7 string password &#61; Console.ReadLine();

    8 if (password &#61;&#61; "88888")

    9 {

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

   11 }

   12 else

   13 {

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

   15     password &#61; Console.ReadLine();

   16     if (password &#61;&#61; "88888")

   17     {

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

   19     }

   20     else

   21     {

   22         Console.WriteLine("错误");

   23     }

   24 }

题3&#xff1a;

    1 //提示用户输入用户名&#xff0c;然后再提示输入密码&#xff0c;

    2 //如果用户名是admin并且密码是88888&#xff0c;则提示正确&#xff0c;

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

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

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

    6

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

    8 string username &#61; Console.ReadLine();

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

   10 string password &#61; Console.ReadLine();

   11 if (username &#61;&#61; "admin" && password &#61;&#61; "88888")

   12 {

   13     Console.WriteLine("正确");

   14 }

   15 else if (username &#61;&#61; "admin")

   16 {

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

   18 }

   19 else if (password &#61;&#61; "88888")

   20 {

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

   22 }

   23 else

   24 {

   25     Console.WriteLine("全部错误&#xff0c;退出");

   26 }

题4&#xff1a;

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

    2 //如果小于10岁&#xff0c;则告知不允许查看&#xff0c;

    3 //如果大于等于10岁并且小于18&#xff0c;则提示用户是否继续查看&#xff08;yesno&#xff09;&#xff0c;

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

    5

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

    7 int age &#61; Convert.ToInt32(Console.ReadLine());

    8 if (age >&#61; 18)

    9 {

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

   11 }

   12 else if (age <10)

   13 {

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

   15 }

   16 else if (age >&#61; 10 && age <18)

   17 {

   18     Console.WriteLine("是否继续查看&#xff08;yesno&#xff09;");

   19     string option &#61; Console.ReadLine();

   20     if (option &#61;&#61; "yes")

   21     {

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

   23     }

   24     else if (option &#61;&#61; "no")

   25     {

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

   27     }

   28     //else

   29     //{

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

   31     //}

   32 }

 

 



推荐阅读
  • JavaScript中的数组是数据集合的核心结构之一,内置了多种实用的方法。掌握这些方法不仅能提高开发效率,还能显著提升代码的质量和可读性。本文将详细介绍数组的创建方式及常见操作方法。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • PHP 实现多级树形结构:构建无限层级分类系统
    在众多管理系统中,如菜单、分类和部门等模块,通常需要处理层级结构。为了高效管理和展示这些层级数据,本文将介绍如何使用 PHP 实现多级树形结构,并提供代码示例以帮助开发者轻松实现无限分级。 ... [详细]
  • 本文提供了多种方法来计算给定年份和月份的起始日和结束日,并进一步探讨了如何根据年、月、周获取特定周的起始日和结束日。 ... [详细]
  • 丽江客栈选择问题
    本文介绍了一道经典的算法题,题目涉及在丽江河边的n家特色客栈中选择住宿方案。两位游客希望住在色调相同的两家客栈,并在晚上选择一家最低消费不超过p元的咖啡店小聚。我们将详细探讨如何计算满足条件的住宿方案总数。 ... [详细]
  • 本文介绍如何在Spring Boot项目中集成Redis,并通过具体案例展示其配置和使用方法。包括添加依赖、配置连接信息、自定义序列化方式以及实现仓储接口。 ... [详细]
  • 2018-2019学年第六周《Java数据结构与算法》学习总结
    本文总结了2018-2019学年第六周在《Java数据结构与算法》课程中的学习内容,重点介绍了非线性数据结构——树的相关知识及其应用。 ... [详细]
  • 本文介绍如何使用MFC和ADO技术调用SQL Server中的存储过程,以查询指定小区在特定时间段内的通话统计数据。通过用户界面选择小区ID、开始时间和结束时间,系统将计算并展示小时级的通话量、拥塞率及半速率通话比例。 ... [详细]
  • 在 Android 开发中,通过 Intent 启动 Activity 或 Service 时,可以使用 putExtra 方法传递数据。接收方可以通过 getIntent().getExtras() 获取这些数据。本文将介绍如何使用 RoboGuice 框架简化这一过程,特别是 @InjectExtra 注解的使用。 ... [详细]
  • 本文介绍了如何在 C# 和 XNA 框架中实现一个自定义的 3x3 矩阵类(MMatrix33),旨在深入理解矩阵运算及其应用场景。该类参考了 AS3 Starling 和其他相关资源,以确保算法的准确性和高效性。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • 本文档介绍了如何在Visual Studio 2010环境下,利用C#语言连接SQL Server 2008数据库,并实现基本的数据操作,如增删改查等功能。通过构建一个面向对象的数据库工具类,简化了数据库操作流程。 ... [详细]
  • 本文探讨了C#语言中类的嵌套使用,特别是当嵌套类作为方法参数时,其内部状态是否会因方法调用而发生改变的问题。通过实例分析,详细说明了引用类型在不同情况下的行为。 ... [详细]
  • 本文详细介绍了Java的安装、配置、运行流程以及有效的学习方法,旨在帮助初学者快速上手Java编程。 ... [详细]
author-avatar
鱼db在海
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有