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是一个漫长的过程,当中会遇到很多技术与心态上的变化.刚开始学习,我们不能发力过猛,需要一个相对稳定的状态去面对.多关注一些自己感兴趣的网站和技术知识,建立自己的信心与好奇心,为以后的学习 ...
随机推荐
- day4作业小代码练习
登录模块: 我们无论上那个网站,经常遇到这样的情况,让我们登录这个网站,流程图如下: 思路: 1.当我们登录网站的时候,我们首先会输入用户名,这个时候,有些网站会提醒我们用户名是否存在,如果我们输入的 ...
- 对象序列化 输入输出流概念 InputOutStream OutputStream
序列化:内存到文件 他是输出流 ObjectOutputStream 需要强制类型转换 必须实现seriazable接口 反序列化:文件到内存 输入流 O ...
- JProfiler - Java的性能监控工具
简介 JProfiler是一款Java的性能监控工具.可以查看当前应用的对象.对象引用.内存.CPU使用情况.线程.线程运行情况(阻塞.等待等),同时可以查找应用内存使用得热点,即:哪个对象占用的内存 ...
- 了解Java基础原理
Java 是1995年SUN公司推出的一门高级编程语言,是面向互联网的语言,WEB应用程序首选的语言(安卓底层,大数据hadoop框架用java编写,Spark用Scala编写,Scala用java写 ...
- RabbitMQ系列教程之七:RabbitMQ的 C# 客户端 API 的简介
今天这篇博文是我翻译的RabbitMQ的最后一篇文章了,介绍一下RabbitMQ的C#开发的接口.好了,言归正传吧. Net/C# 客户端 API简介1.主要的命名空间,接口和类 定义核心的API的 ...
- Android帧动画笔记
创建drawable资源文件,选择animation-list<?xml version="1.0" encoding="utf-8"?><a ...
- 谈谈HashMap与HashTable
谈谈HashMap与HashTable HashMap 我们一直知道HashMap是非线程安全的,HashTable是线程安全的,可这是为什么呢?先聊聊HashMap吧,想要了解它为什么是非线程安全的 ...
- select默认选中项颜色为灰色,选择后变为黑色(js实现)
<script> var unSelected = "#999"; var selected = "#333"; $(function () { $ ...
- JVM常用启动参数
本文参考 jvm参数设置大全:http://www.cnblogs.com/marcotan/p/4256885.html 堆内存分配及gc:http://www.cnblogs.com/weiguo ...
- C语言基础 - 实现单向链表
回归C基础 实现一个单向链表,并有逆序功能 (大学数据结构经常是这么入门的) //定义单链表结构体 typedef struct Node{ int value; struct Node *next; ...