初学C#


初见Hello,World

第一句源代码:Console.WriteLine("Hello,World");;

认识.Net;

编译工具:Visual Studio;

主函数:Public static void main(string[] args);

输出语句:Console.WriteLine("Hello,world");


变量和数据类型

数据类型:常见的C#数据类型:char.string.int.double

变量:变量的语法:数据类型+空格+变量名+“;”;变量的赋值:变量名+“=”+数据+“;”

变量的命名:语法:数据类型+空格+名称

变量的使用技巧:变量的三要素:数据类型、变量名、变量值

数据的运算:double类型和int类型运算,返回类型为double

字符串运算:字符串运算的方式是拼接;拼接符号:“+”

输入语句:内容:Console.ReadLine();

类型转换:任何类型转换到string: 待转换的数据.ToString();

数字类型:整数用int,实数用double

11转义符“\”:··以反斜线"\"开头,后跟一个或几个字符

代码注释:单行注释,多行注释和文档注释

软件中的错误及调试:编译错误,运行错误和逻辑错误


运算符和表达式

认识运算符:一目运算符、二目运算符、三目运算符

小括号:类型转换、改变运算顺序、函数调用

算术运算符:

变量名++(--):1.计算返回结果,与变量相同;2.将变量的值增加1

++(--)变量名:1.计算返回结果,变量值加1;2.将变量的值增加1

赋值运算符: =;+=;-=;/=;%=

逻辑运算符:true和false

三目运算符:判断条件?操作数1:操作数2

表达式:int a=1+2

运算符优先级:优先级越高的运算符,会优先得到执行

健康计算器:

while(true)
{
//完成所有的提示工作并存入输入的变量;
Console.WriteLine("请输入你的性别(男或女):");
string input = Console.ReadLine();
if (input == "男" || input == "女")
{
Console.WriteLine("请输入你的身高(厘米):");
double height = double.Parse(Console.ReadLine());
Console.WriteLine("请输入你的体重(千克):");
double weight = double.Parse(Console.ReadLine());
//计算标准体重
double standarWeigtht = input == "男" ? (height - ) * 0.7 : (height - ) * 0.6;
if (weight < standarWeigtht * 0.9)
{
Console.WriteLine("标准体重的范围是:" + 0.9 * standarWeigtht + "-----" + 1.1 * standarWeigtht + "之间~");
Console.WriteLine("很遗憾!您的体重偏瘦,请注意补充营养!");
}
else if (weight > 1.1 * standarWeigtht)
{
Console.WriteLine("标准体重的范围是:" + 0.9 * standarWeigtht + "-----" + 1.1 * standarWeigtht + "之间~");
Console.WriteLine("很遗憾!您的体重偏胖,请注意多多锻炼!");
}
else
{
Console.WriteLine("标准体重的范围是:" + 0.9 * standarWeigtht + "-----" + 1.1 * standarWeigtht + "之间~");
Console.WriteLine("恭喜您!您的身材很健康,请继续保持~");
}
Console.ReadLine();
break;
}
else
{
Console.WriteLine("别开玩笑好嘛!请重新输入“男”或者“女”t");
}
}
}

健康计算器


流程控制

流程图:功能分析和代码书写分离;更加专注,便与解决复杂问题

if判断:代码格式:if(条件1){代码1}   else if  (条件2)  {代码2}   else  {代码N}

变量作用域:在大括号内,该变量有效,大括号外无效

收益计算器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
/*
int sum = 0;
for (int i = 1; i <= 100;i++ )
{
sum += i;
}
Console.WriteLine(sum);
*/ /*
Console.WriteLine("请输入一个数:");
int input = int.Parse(Console.ReadLine());
switch(input)
{
case 1: Console.WriteLine("星期一");
break;
case 2: Console.WriteLine("星期二");
break;
case 3: Console.WriteLine("星期三");
break;
case 4: Console.WriteLine("星期四");
break;
case 5: Console.WriteLine("星期五");
break;
case 6: Console.WriteLine("星期六");
break;
case 7: Console.WriteLine("星期日");
break;
default:
Console.WriteLine("错误显示");
break; }
*/ Console.WriteLine("请输入您的存款金额(万):");
double input = double.Parse(Console.ReadLine());
Console.WriteLine("请输入您要存款的时间(年):");
int input2 = int.Parse(Console.ReadLine());
if (input2 <= )
{
Console.WriteLine("请重新输入时间:");
}
if (input2 == )
{ if (input <= )
{
Console.WriteLine("请重新输入金额!");
}
else if (input > && input < )
{
double money1 = input * 0.04 * ;
Console.WriteLine("恭喜你,存款成功,1年后到期," + "您的利息为:" + money1 + "(万元)");
}
else
{
double money2 = 1.1 * input * 0.04 * ;
Console.WriteLine("恭喜你,存款成功,1年后到期," + "您的利息为:" + money2 + "(万元)");
} } if (input2 >= && input2 <= )
{
int time = (int)input2; if (input <= )
{
Console.WriteLine("请重新输入金额!");
}
else if (input > && input < )
{
double money1 = input * 0.048 * time;
Console.WriteLine("恭喜你,存款成功," + input + "年后到期," + "您的利息为:" + money1 + "(万元)");
}
else
{
double money2 = 1.1 * input * 0.048 * time;
Console.WriteLine("恭喜你,存款成功," + input + "年后到期," + "您的利息为:" + money2 + "(万元)");
} } if (input2 > )
{
int time = (int)input2; if (input <= )
{
Console.WriteLine("请重新输入金额!");
}
else if (input > && input < )
{
double money1 = input * 0.052 * time;
Console.WriteLine("恭喜你,存款成功," + input + "年后到期," + "您的利息为:" + money1 + "(万元)");
}
else
{
double money2 = 1.1 * input * 0.052 * time;
Console.WriteLine("恭喜你,存款成功," + input + "年后到期," + "您的利息为:" + money2 + "(万元)");
} }
Console.ReadLine();
}
}
}

收益计算器

Switch选择:代码格式:switch()  {case 1:break;  case 2:break;}

While循环:代码格式:while(循环条件){循环体}  //循环体可以是任意功能,任意数量的代码

do While循环:先执行一次循环体

for循环:代码格式:for(表达1;表达式2;表达式3)  { 循环体}

查找问题:简单查找:在样本中,依次寻找目标数据


数组与集合

数组:数据类型 【】 变量名 =new 数据类型【长度】

数组的定长性:长度固定不变

数组的遍历:从数组的第一项开始,依次取完数组的所有项

交换排序:

 for (int i = ; i < arr.Length; i++)
{
for (int j = i + ; j < arr.Length; j++)
{
if (arr[i] > arr[j])
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
} for (int i = ; i < arr.Length; i++)
{
Console.Write(arr[i]);
if (i < arr.Length) { Console.Write(","); }
}

交换排序

数组分析器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("请输入数组的长度:");
int len = int.Parse(Console.ReadLine());
int[] arr = new int[len];
for (int i = ; i < arr.Length; i++)
{
Console.WriteLine("请输入第" + (i + ) + "项的值");
arr[i] = int.Parse(Console.ReadLine()); }
Console.WriteLine("数组所有项的值为:");
for (int i = ; i < arr.Length; i++)
{
Console.Write(arr[i]);
if (i < arr.Length) { Console.Write(","); }
}
Console.WriteLine("\n");
Console.WriteLine("数组从小到大排序后是:");
for (int i = ; i < arr.Length; i++)
{
for (int j = i + ; j < arr.Length; j++)
{
if (arr[i] > arr[j])
{
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
} for (int i = ; i < arr.Length; i++)
{
Console.Write(arr[i]);
if (i < arr.Length) { Console.Write(","); }
} //求是否为奇数
Console.WriteLine("\n");
Console.WriteLine("数组里的奇数有:");
for (int i = ; i < arr.Length; i++)
{
if (arr[i] % != )
{
Console.Write(arr[i]);
if (i < arr.Length) { Console.Write(","); }
}
} Console.WriteLine("\n");
Console.WriteLine("数组里的质数有");
for (int i = ; i < arr.Length; i++)
{
int n = arr[i];
bool isFind = false; for (int j = ; j < n; j++)
{ if (n % j == )
{
isFind = true;
break; } }
if (isFind == true)
{
//bushizhishu
}
else
{
Console.Write(n);
if (i < arr.Length) { Console.Write(","); }
}
} Console.ReadLine(); }
}
}

数组分析器

集合:不定长,占用内存多,遍历速度慢

数组能实现的所有功能,集合都能实现

foreach循环:只能用于遍历数组或集合

集合管理器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text; namespace 集合管理器
{
class Program
{
static void Main(string[] args)
{
List<int> numbers = new List<int>();
while (true)
{ Console.WriteLine("集合中现有内容如下:");
Console.WriteLine("=============================================="); //显示集合
if (numbers.Count == )
{
Console.WriteLine("集合中没有元素");
}
else //集合的遍历
{
foreach (int item in numbers)
{
Console.Write(item+"\t");
}
Console.WriteLine();//循环结束后让光标换行
}
Console.WriteLine("=============================================="); Console.WriteLine("1.添加数据");
Console.WriteLine("2.删除数据");
Console.WriteLine("3.修改数据");
Console.WriteLine("4.升序排序");
Console.WriteLine("0.退出程序");
Console.WriteLine("请选择(0-4):");
int num = int.Parse(Console.ReadLine());
if(num==)
{
break;
}
else if(num==)
{
Console.WriteLine("请输入要添加的数字:"); //添加数据
int input=int.Parse(Console.ReadLine());
numbers.Add(input);
}
else if(num==)
{
//删除数据
Console.WriteLine("请输入要删除的元素(相同元素只会删除第一个):");
int input=int.Parse(Console.ReadLine());
numbers.Remove(input); }
else if(num==)
{
//修改数据
if(numbers.Count==)
{
Console.Write("集合中没有任何数据可以修,按回车键继续。。。");
Console.ReadLine();
}
else{
int maxIndex=numbers.Count-;
Console.WriteLine("请输入你要修改的元素下标(0-"+maxIndex+"):");
int input1=int.Parse(Console.ReadLine());
if(input1<||input1>maxIndex)
{
Console.WriteLine("输入错误,下标超出范围,按回车键继续...");
Console.ReadLine();
}
else
{
Console.WriteLine("请输入新的数据:");
int input2=int.Parse(Console.ReadLine());
numbers[input1]=input2;
} }
}
else if(num==)
{
//升序排序
for (int i = ; i<numbers.Count-; i++)
{
for (int j = i+; j < numbers.Count;j++ )
{
if(numbers[i]>numbers[j])
{
int temp = numbers[i];
numbers[i] = numbers[j];
numbers[j] = temp;
} } }
}
else
{
Console.WriteLine("请重新选择!");
} Console.Clear();//清屏
} }
}
}

集合管理器


函数

认识函数:具有独立功能,并能通过名称重复使用的代码

作用域:一个变量,仅在他所定义的大括号中有效

标识符:变量名,函数名,类名,接口名,委托名,其他

声明带参数的函数:声明带参数的函数:static void 函数名(参数列表){//注释内容}

调用带参数的函数:函数编写时,参数为形参;函数调用 时,

参数为实参;实参的数量和类型必须和形参完全对应

声明带返回值的函数:static 返回类型 函数名(形参列表){//函数体}

如果一个函数不需要返回,那么它的返回类型就会void

当代码运行到return语句时,立即结束函数

返回return关键字后面的值,变量或表达式的结果

调用带返回值的函数:函数名(实参列表)

返回类型与函数声明的返回类型一致

函数签名:是一个函数的函数名、参数列表、返回类型的统称

根据它实现函数调用;根据它实现函数体

文档注释:符号:///;通常写到函数体外,用于描述函数体外的代码

函数重载(overload):是指多个函数可以使用同一个函数名,只要他们的参数列表不同

函数的相互调用:在任意一个函数中,都可以调用其他的函数

只要代码运行到调用函数的语句,就回去执行调用的函数体

递归函数:是指一个函数,直接或者间接的调用自身

递归必须有终止条件,否则,将会出现无限递归


C#的初学知识点的更多相关文章

  1. java初学知识点

    public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARG ...

  2. 初学Java 精简知识点总结

    面对Java丰富的知识资料,很多初学者难免觉得迷惘,该学什么,怎么去学?下面给大家讲Java基础知识做了精简总结,来帮助你梳理学习思路,赶快看看吧! 方法/步骤1 对象的初始化(1) 非静态对象的初始 ...

  3. JS初学的一些易错的知识点

    1.  false ,0 , "" ,undefined , null  在Boolean 环境下当成 false: null  在数值环境下当成 0: undefined 在数值 ...

  4. 初学ASP.NET 知识点

    1.C# 中的虚方法 和 C++中的作用一致,能让指向子类的父类指针优先到子类中寻找方法,而不是直接调用父类中的方法. 看一段例子回忆下: namespace ConsoleApplication1 ...

  5. 初学python - 零碎的知识点

    * 标识符命名规则 数字,字母,下划线组成,数字不能开头区分大小写 * 注释 单行:#:多行:‘ ‘ ‘ ,“”“: * 进制标识 b:二进制 o:八进制 d:十进制x:十六进制 转换:format( ...

  6. 初学JQuery相关知识点

    [简单的JQuery]注册事件的函数. $(document).ready(function(){}) [JQuery提供的函数]$.map(array,fn) 对数组array中每个元素调用fn函数 ...

  7. 初学HTML5做的小知识点

    新增的HTML5标签 语义化标签 :<header> 头标签      <nav> 导航标签      <section> 表示文档的结构.栏目      < ...

  8. javascript中的一些核心知识点以及需要注意的地方

    前言 近期杂事甚多,这些事情的积累对知识体系的提升有好处,但是却不能整理出来,也整理不出来 比如说我最近研究的Hybrid在线联调方案便过于依赖于业务,就算分享也不会有人读懂,若是抽一点来分享又意义不 ...

  9. 初学HTML5、初入前端

    学习HTML5是一个漫长的过程,当中会遇到很多技术与心态上的变化.刚开始学习,我们不能发力过猛,需要一个相对稳定的状态去面对.多关注一些自己感兴趣的网站和技术知识,建立自己的信心与好奇心,为以后的学习 ...

随机推荐

  1. 增强学习 | Q-Learning

    "价值不是由一次成功决定的,而是在长期的进取中体现" 上文介绍了描述能力更强的多臂赌博机模型,即通过多台机器的方式对环境变量建模,选择动作策略时考虑时序累积奖赏的影响.虽然多臂赌博 ...

  2. vijos1101题解

    题目: 研究表明,这种传染病的传播具有两种很特殊的性质: 第一是它的传播途径是树型的,一个人X只可能被某个特定的人Y感染,只要Y不 得病,或者是XY之间的传播途径被切断,则X就不会得病. 第二是,这种 ...

  3. 自画一张linux基础架构学习框架图

    草图一张,仅供参考,学习并掌握下面这张图的技能只是个开始--

  4. 关于非阻塞connnect的看法

    关于非阻塞connnect的总结 在面试题中,看到有关于阻塞connect和非阻塞connect的区别: 显然,我们可以从阻塞和非阻塞的意思来回答,既然是阻塞,那么执行connect的操作会一直阻塞到 ...

  5. 无法启动 IIS Express Web 服务器

    问题描述:我用的是vs2015,有时候打开自己的项目,点击调试运行,会失败,弹出窗口,告诉我,无法启动 IIS Express Web 服务器,我就纳闷了,刚才还好好,怎么这会就不行了,各种试,都不行 ...

  6. Spring3 MVC DispatcherServlet 配置问题

    1. Spring MVC 是通过servlet来进行转发的,一般在web.xml中配置如下: <servlet> <servlet-name>dispatcher</s ...

  7. 软件安装(JDK+MySQL+TOMCAT)

    一,JDK安装 1,查看当前Linux系统是否已经安装了JDK 输入 rpm -qa | grep java 如果有: 卸载两个openJDK,输入rpm -e --nodeps 要卸载的软件 2,上 ...

  8. 基于 WebRTC 技术的实时通信服务开发实践

    随着直播的发展,直播实时互动性变得日益重要.又拍云在 WebRTC 的基础上,凭借多年的开发经验,结合当下实际情况,开发 UPRTC 系统,解决了网络延时.并发量大.客户端解码能力差等问题. WebR ...

  9. 华为OJ之尼科彻斯定理

    题目详情: 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和. 例如: 1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19 输入:一个整形数字 输出: ...

  10. spring+springmvc+mybaties整合实例

    spring+springmvc+mybaties即SSM框架整合在ecpliseee中开发:很么多西都是只有只有自己上手做,才会懂.昨晚熬了很久,才弄出来.也希望对新手有帮助!下面整理一下思路:关键 ...