C#的初学知识点
初学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#的初学知识点的更多相关文章
- java初学知识点
public class EnumTest { public static void main(String[] args) { Size s=Size.SMALL; Size t=Size.LARG ...
- 初学Java 精简知识点总结
面对Java丰富的知识资料,很多初学者难免觉得迷惘,该学什么,怎么去学?下面给大家讲Java基础知识做了精简总结,来帮助你梳理学习思路,赶快看看吧! 方法/步骤1 对象的初始化(1) 非静态对象的初始 ...
- JS初学的一些易错的知识点
1. false ,0 , "" ,undefined , null 在Boolean 环境下当成 false: null 在数值环境下当成 0: undefined 在数值 ...
- 初学ASP.NET 知识点
1.C# 中的虚方法 和 C++中的作用一致,能让指向子类的父类指针优先到子类中寻找方法,而不是直接调用父类中的方法. 看一段例子回忆下: namespace ConsoleApplication1 ...
- 初学python - 零碎的知识点
* 标识符命名规则 数字,字母,下划线组成,数字不能开头区分大小写 * 注释 单行:#:多行:‘ ‘ ‘ ,“”“: * 进制标识 b:二进制 o:八进制 d:十进制x:十六进制 转换:format( ...
- 初学JQuery相关知识点
[简单的JQuery]注册事件的函数. $(document).ready(function(){}) [JQuery提供的函数]$.map(array,fn) 对数组array中每个元素调用fn函数 ...
- 初学HTML5做的小知识点
新增的HTML5标签 语义化标签 :<header> 头标签 <nav> 导航标签 <section> 表示文档的结构.栏目 < ...
- javascript中的一些核心知识点以及需要注意的地方
前言 近期杂事甚多,这些事情的积累对知识体系的提升有好处,但是却不能整理出来,也整理不出来 比如说我最近研究的Hybrid在线联调方案便过于依赖于业务,就算分享也不会有人读懂,若是抽一点来分享又意义不 ...
- 初学HTML5、初入前端
学习HTML5是一个漫长的过程,当中会遇到很多技术与心态上的变化.刚开始学习,我们不能发力过猛,需要一个相对稳定的状态去面对.多关注一些自己感兴趣的网站和技术知识,建立自己的信心与好奇心,为以后的学习 ...
随机推荐
- 浅析ConcurrentHashMap
一.导论 这些天一直在看关于多线程和高并发的书籍,也对jdk中的并发措施了解了些许,看到concurrentHashMap的时候感觉知识点很乱,有必要写篇博客整理记录一下. 当资源在多线程下共享时会产 ...
- 接水问题【NOIP2010普及组】优先队列
题目描述 学校里有一个水房,水房里一共装有 m 个龙头可供同学们打开水,每个龙头每秒钟的供水量相等,均为 1. 现在有 n 名同学准备接水,他们的初始接水顺序已经确定.将这些同学按接水顺序从 1到 n ...
- JavaScript一个猜数字游戏
效果图: 代码: <body> <script type="text/javascript"> window.onload = newgame; //页面载 ...
- webgl自学笔记——几何图形
3D应用的基础元素: 1.canvas,它是渲染场景的占位符.标准html的canvas元素 2.Objects,这里指的是组成一个场景的所有3d实体.这些实体都由三角形组成.webgl中使用Buff ...
- 《javascript 高级程序设计》笔记
1-4章 1.变量①.ECMAScript 变量是松散类型的,也就是说可以用来保存任何类型的数据.换句话说每个变量仅仅是一个用于保存值的占位符.②.如果在函数中使用var定义一个变量,那么这个变量在函 ...
- Android使用ViewPager实现导航菜单
首先设置页面的Fragment布局: public class TabFragment extends ListFragment { @Override public void onViewCreat ...
- springJdbc like模糊查询,Spring namedParameterJdbcTemplate like查询
springJdbc like模糊查询,Spring namedParameterJdbcTemplate like查询, SpringJdbc命名参数like模糊查询,namedParameterJ ...
- background背景透明内容不透明
.demo{ padding: 25px; background-color:#000000;/* IE6和部分IE7内核的浏览器(如QQ浏览器)下颜色被覆盖 */ background-color: ...
- Mongoose基础入门
前面的话 Mongoose是在node.js异步环境下对mongodb进行便捷操作的对象模型工具.本文将详细介绍如何使用Mongoose来操作MongoDB NodeJS驱动 在介绍Mongoose之 ...
- 使用JDBC技术连接数据库(附源码)--JAVA的简单应用
一.创建数据库(以mysql数据库为例) mysql数据库的下载安装与配置 -可参考博主之前的随笔:Windows平台下搭建MySQL数据库 创建wxb数据库-create database wxb; ...