C#编程基础(简单概述与理解)
1、C#变量和数据输入
C#常用到的几个数据类型:
整型:int 说明:32位有符号整数 范围:-2³¹~2³¹-1
浮点型:double 说明:64位双精度浮点数 范围:±5.0×10-﹣³²~±1.7×10³º
布尔型:bool 值:true和false 字符串型:0个或多个字符组成的字符串
变量概念:
变量就是一块存储空间,存储的值在程序运行过程中是可以不断变化的。
C#变量命名规范:
- 变量名只能由数字、字母和下划线组成
- 变量名的第一个字符只能是字母或下划线,不能是数字
- 不能使用C#中的关键字、类名等作为变量名
- 通常变量名的首字母小写、如果变量名是多个单词组成,那么出第一个单词的首字母小写之外,其他单词的首字母均为大写(驼峰命名法)
注:一般变量名都全是字母组成的,不要与C#中的关键字、类名相同就行
C#变量的赋值基础语法:
int x=34; //定义变量y
y=100; //给y赋值
int i=100+10*5; //把表达式的结果赋值给变量i;
C#变量的输出:
Console.WriteLine("殿下,请输入您的大名:");
string Name = Console.ReadLine();
Console.WriteLine("殿下,请输入您的芳龄");
int Age =int.Parse(Console.ReadLine());
C#变量的输出:
Console.WriteLine();//输出了一行空行 (换行)
Console.WriteLine("明星:","票价:","GD","1000");//中有两个格式字符 {},{1}后面的两个数据,“GD”和“1000”按顺序放在其中的一个位置显示
Console.WriteLine("I LOVE YOU");//有换行效果
Console.Write("I LOVE YOU");//没有换行效果
Console.WriteLine("注销快捷键与注释效果"); //ctrl+k+c
Console.WriteLine("取消注销快捷键与注释效果");//ctrl+k+u
C#变量的输出:
Console.WriteLine("地址:{0}", "珠海"); //在C#中,格式字符串的参数是从0开始计算的
int HYX = ; //定义整型变量并赋值
Console.WriteLine("" + HYX); //提示文字+HYX的值
C#数据类型的转换:
隐式转换:主要是用于安全的类型转换,由系统自动完成。
int x = 33;
double y = x;//int类型转换成了double类型储存
int z = 'Q';//char类型转换成了int类型储存
显示转换:也叫强制转换,它的基本语法是这样的(目标类型)(表达式)。
double x= 33.44;
int y = (int)x;//将x转成整型
float z = (float)(z + 30);//将表达式转换成单精度浮点型
2、C#运算符和选择语句
C#赋值运算符:
运算符 | 运算规则 | 意义 |
= | 将表达式赋值给变量 | 将右边的值给左边 |
+= | x+=y | x=x+y |
-= | x-=y | x=x-y |
*= | x*=y | x=x*y |
\= | x/=y | x=x/y |
%= | x%=y | x=x%y(%用于求余数) |
使用运算符来解决一个问题:
int x = 30, y = 40, temp;
Console.WriteLine("交换前的数据:x={0},y={1}",x,y);
//开始交换数据
temp = x;
x = y;
y = temp;
Console.WriteLine("交换后的数据:x={0},y={1}",x,y);
C#算术运算符:
运算符 | 运算规则 | 意义 |
+ | x+y | 执行加法运算 |
- | x-Y | 执行减法运算 |
* | x*y | 执行乘法运算 |
/ | x/y | 执行除法运算,得到商的值 |
% | x%y | 执行除法运算,得到余数的值 |
++ | x++或++x | 自增1 |
-- | x--或--x | 自减1 |
C#关系运算符:
运算符 | 运算规则 | 示例 | 结果 |
== | x==y | 10==20 | false |
!= | x!y | 10!20 | true |
> | x>y | 10>20 | true |
>= | x>=y | 10>=20 | fa;se |
< | x<y | 10<20 | true |
<= | x<=y | 10<=20 | true |
C#逻辑运算符:
运算符 | 运算规则 | 意义 |
&&(与) | A&&B | A和B同时为true,结果为true注意:当A为false,B不需要计算 |
||(或) | A||B | A和B只要一个为true,结果为true注意:当A为true,B不需要计算 |
!(非) | !A | A为true,结果为false;A为false,结果为true; |
C#运算符的优先级:
优先级 | 运算符 |
高 | () |
前缀++,前缀--,! | |
*,/,% | |
+,- | |
<,<=,>,<= | |
=,!= | |
&& | |
|| | |
=,+=,-=,*=,/=,%= | |
低 | 后缀++,后缀-- |
C#选择语句1:
Console.WriteLine("请输入您的国籍哈!");
string country = Console.ReadLine();
if (country == "中国") {
Console.WriteLine("您是爱好和平的伟大中国人!");
} else {
Console.WriteLine("你好黑鬼!(注:纯属搞笑的)");
}
C#选择语句2:
int月;
Console.WriteLine("请输入一个月份:");月 = Convert.ToInt32(Console.ReadLine());
if (月 >= && 月 <= ) {
Console.WriteLine("{0}您输入的月份正确!", 月);
} else {
Console.WriteLine("{0}您输入的月份错误!", 月);
}
C#选择语句3:
Console.WriteLine("请输入您的性别:");
string性别 = Console.ReadLine();
Console.WriteLine("请输入您的年龄:");
int年龄 = Convert.ToInt32(Console.ReadLine());
if (性别 == "男") {
if (年龄 >= ) {
Console.WriteLine("你是{0}性,今年{1}岁,您已达法定结婚年龄", 性别, 年龄);
} else {
Console.WriteLine("你是{0}性,今年{1}岁,您未达法定结婚年龄", 性别, 年龄);
}
} else {
if (年龄 >= ) {
Console.WriteLine("你是{0}性,今年{1}岁,您已达法定结婚年龄", 性别, 年龄);
} else {
Console.WriteLine("你是{0}性,今年{1}岁,您未达法定结婚年龄", 性别, 年龄);
}
}
C#选择运算器:
int x,y;
Console.WriteLine("请输入第一个数:");
x = Convert.ToInt32(Console.ReadLine()); //x = int.Parse(Console.ReadLine());
Console.WriteLine("请输入第二个数:");
y = int.Parse(Console.ReadLine());
Console.WriteLine("请输入ysf:+,-,*,/");
string ysf = Console.ReadLine();
if (ysf == "+") {
Console.WriteLine("{0}+{1}={2}", x, y, x + y);
}
if (ysf == "-") {
Console.WriteLine("{0}-{1}={2}", x, y, x - y);
}
if (ysf == "*") {
Console.WriteLine("{0}*{1}={2}", x, y, x * y);
}
if (ysf == "/") {
Console.WriteLine("{0}/{1}={2}", x, y, x / y);
}
3、C#循环
C#中的四种循环结构:
- for循环
- whie循环
- do...while循环
- foreach循环
for循环语法结构:
for(表达式1;表达式2;表达式3;)
{
语句块;
}
for循环案例1+2+3...20的和:
int sum = ; //存放和的变量
{
for (int i = ; i < ; i++) {
sum += i; //累加所有数的和
}
Console.WriteLine("1到20之间整数和为:{0}", sum);
}
while循环语法结构:
while(布尔表达式)
{
语句块;
}
while循环案例输出1-8的整数:
int i = ;
while (i <= ) {
Console.WriteLine(i);
i++; //注意:这里需要修改i的值
}
do...while循环结构语法:
int i = ;
do {
Console.WriteLine(i);
i++; //注意:这里需要修改i的值
} while ( i <= );
C#嵌套循环的使用案例:
C#嵌套循环输出10行1~8之间的整数:
for (int i = ; i <= ; i++) //外循环,i控制行
{
for (int j = ; j <= ; j++) //内循环,j控制列
{
Console.WriteLine(j + ""); //输出j
}
Console.WriteLine(); //输出一行整数后再换行
}
运行图:
C#镶套循环输出直角三角形:
for (int i = ; i <= ; i++) {
for (int j = ; j <= i; j++) //外层循环,i用于控制行数的变化
{
Console.Write("▲"); //内层循环,j用于控制列数的变化
}
Console.WriteLine(); //打印完一行后换行
}
运行图:
C#镶套循环输出九九乘法表:
for (int i = ; i <= ; i++) {
for (int j = ; j <= i; j++) {
Console.Write("{0}*{1}={2}\t", i, j, i * j);
}
Console.WriteLine();
}
运行图:
4、C#数组
C#一位数组的声明:
数据类型 [ ] 数组名称;
C#数组的初始化:
(1)指定数组存储的元素序列,语法格式结构如下:
数据类型 [ ] 数组名称={值1,值2,值3,...,值n};
(2)指定数组长度,使用new关键字初始化数组,语法结构下:
数据类型 [ ] 数组名称=new 数据类型[长度];
注意:数组里只能储存数据类型相同的数据!!!
注意:数组里只能储存数据类型相同的数据!!!
注意:数组里只能储存数据类型相同的数据!!!
Arrays.short();(升序)
例子:
int [ ] a={1,2,3}; 第一钟方式,长度为3(因为我们初始化了3个值)
int [ ] b=new int [4]; 第二种方式,长度为4
int [ ] c=new int [4] {1,2,3,4}; 这两种形式的结合,数组长度必须和元素个数匹配
int [ ] d=new int [ ] {1,2,3,4,5,6,7} 初始化了元素,长度可以省略
C#一维数组循环案例:
string[] lx = new string[];
for (int i = ; i < lx.Length; i++) {
Console.WriteLine("请输入第{0}种军用飞机类型:", i + );
lx[i] = Convert.ToString(Console.ReadLine());
Console.WriteLine("是否继续输入(y/n)?:");
string a = Console.ReadLine();
if (a == "n") {
Console.WriteLine("信息输入完毕!");
break;
}
}
运行图:
C#一位数组求和与平均值:
int sum = ; //累加
int n = ; //决定用户输入的个数
int[] num = new int[n]; //保存用户输入的10个数
//接收用户输入的10个数
for (int i = ; i < num.Length; i++) {
Console.WriteLine("请输入第{0}个数:", i + );
num[i] = Convert.ToInt32(Console.ReadLine());
sum = sum + num[i]; //求和
}
Console.WriteLine("\n您输入的数之和为:" + sum);
Console.WriteLine("您输入的数平均值为:" + (sum * 1.0 / num.Length));
运行图:
5、类与对象
类的概念:
泰迪是狗,加菲猫是猫,海绵宝宝是海绵,它们都是不同类型的事物,这里就体现了什么叫做类(区别、分类)
对象的概念:
假如有一堆的书,而《大主宰》是其中的具体一本,我们可以把《大主宰》这本书理解成就是一个对象。
属性的概念:
眼前有个妹纸,她叫小美她的特点是很漂亮,小美是具体的一个对象,她的特征是漂亮,这个特征在程序中就相当于属性。
方法的概念:
方法是一种执行的方式,它调用等于一个军师,告诉调用它的对象它能做些神马。
定义类的语法结构:
[访问修饰符] class 类名
{
类的成员;
}
定义字段的语法结构:
[访问修饰符] 数据类型 字段名称;
属性定义语法如下: 自动属性定义语法如下:
[访问修饰符] 数据类型 属性名称 [访问修饰符] 数据类型 属性名称{get;set;}
{
get{return 字段;}
set{字段=value;}
}
构造方法定义语法如下:
[访问修饰符] 类名([参数列表的])
{
构造方法的主体;
}
对象定义语法如下:
类名 对象名=new 类名([参数列表]); 对象.属性=值;//赋值 变量=对象名.属性;//取值
实例方法的语法如下:
[访问修饰符] 返回类型 方法名([参数列表])
{
方法主体;
}
方法的参数:
[访问修饰符] 返回类型 方法名称([参数类型 参数名称1,参数类型 参数名称2,……,参数类型 参数名称n])
{
方法体
}
方法的返回值:
return 表达式;
实例方法的调用:
对象名.方法名([参数]); //对于没有返回值的方法
变量名=对象名.方法名([参数]); //对于有返回值的方法
静态方法:
[访问修饰符] static 返回类型 方法名 ([参数列表])
{
方法体;
}
静态方法的调用:
1.静态的方法或变量是长期住留在内存中,直到程序关闭这个软件才会在内存中消失
2.静态方法的调用是无需构建对象类访问,直接用类名打点调用
3.静态方法内要访问本类中的成员变量时,该成员变量也必须是静态的
C#编程基础(简单概述与理解)的更多相关文章
- Android 网络编程基础之简单聊天程序
前一篇讲了Android的网络编程基础,今天写了一个简单的聊天程序分享一下 首先是服务端代码: package com.jiao.socketdemo; import java.io.Buffered ...
- 简单粗暴地理解js原型链–js面向对象编程
简单粗暴地理解js原型链–js面向对象编程 作者:茄果 链接:http://www.cnblogs.com/qieguo/archive/2016/05/03/5451626.html 原型链理解起来 ...
- Magento 架构基础知识概述
Megento 架构基础知识概述 Magento整合了面向对象的基于PHP的应用程序的核心架构原则.这些一般原则的综合讨论既有在线的,也有印刷形式.以下讨论主要关注这些主题如何直接应用于Magento ...
- 面向对象编程基础(java)
面向对象编程基础 1.1 面向对象概述 在程序开发初期,大家使用的是结构化开发语言,也就是面向过程(opp),但随着市场需求剧增,软件的规模也越来越大,结构化语言的弊端也暴露出来. 开发周期无休止的拖 ...
- 【转】【C#】C# 5.0 新特性——Async和Await使异步编程更简单
一.引言 在之前的C#基础知识系列文章中只介绍了从C#1.0到C#4.0中主要的特性,然而.NET 4.5 的推出,对于C#又有了新特性的增加--就是C#5.0中async和await两个关键字,这两 ...
- [.net 面向对象编程基础] (6) 基础中的基础——运算符和表达式
[.net 面向对象编程基础] (6) 基础中的基础——运算符和表达式 说起C#运算符和表达式,小伙伴们肯定以为很简单,其实要用好表达式,不是一件容易的事.一个好的表达式可以让你做事半功倍的效果,比如 ...
- [.net 面向对象编程基础] (14) 重构
[.net 面向对象编程基础] (14) 重构 通过面向对象三大特性:封装.继承.多态的学习,可以说我们已经掌握了面向对象的核心.接下来的学习就是如何让我们的代码更优雅.更高效.更易读.更易维护.当然 ...
- [.net 面向对象编程基础] (16) 接口
[.net 面向对象编程基础] (16) 接口 关于“接口”一词,跟我们平常看到的电脑的硬件“接口”意义上是差不多的.拿一台电脑来说,我们从外面,可以看到他的USB接口,COM接口等,那么这些接口的目 ...
- [.net 面向对象编程基础] (18) 泛型
[.net 面向对象编程基础] (18) 泛型 上一节我们说到了两种数据类型数组和集合,数组是指包含同一类型的多个元素,集合是指.net中提供数据存储和检索的专用类. 数组使用前需要先指定大小,并且检 ...
随机推荐
- Deep Dive into Spark SQL’s Catalyst Optimizer(中英双语)
文章标题 Deep Dive into Spark SQL’s Catalyst Optimizer 作者介绍 Michael Armbrust, Yin Huai, Cheng Liang, Rey ...
- spring 中单例 bean 初始化之后和销毁之前执行指定动作 postconstruct 和 preDestroy
1 生命周期方法, 在指定bean 创建完成后执行初始化动作或销毁之前做一些善后动作.有 3 种方法 1)实现接口 InitializingBean 然后实现 afterPropertiesSet 方 ...
- crawler_exa3
优化中... #! /usr/bin/env python # -*- coding:utf-8 -*- # Author: Tdcqma ''' v1.0: 由于网站结构存在变更的可能性,一旦爬虫爬 ...
- A*算法详解链接
A星算法详解(个人认为最详细,最通俗易懂的一个版本) Introduction to the A* Algorithm 路径规划: a star, A星算法详解 实现A星算法
- 【Java】的四种引用的区别
强引用:如果一个对象具有强引用,它就不会被垃圾回收器回收.即使当前内存空间不足,JVM 也不会回收它,而是抛出 OutOfMemoryError 错误,使程序异常终止.如果想中断强引用和某个对象之间的 ...
- windows下JDK环境配置与Android SDK环境配置
一.JDK环境配置1.配置变量名:JAVA_HOME变量值:jdk安装的绝对路径. 变量名:Path(在系统变量中找到并选中Path点击下面的编辑按钮,不要删除原本变量值中的任何一个字母,在这个变量值 ...
- React Native常用组件之ListView
1. ListView常用属性 ScrollView 相关属性样式全部继承 dataSource ListViewDataSource 设置ListView的数据源 initialListSize n ...
- Python3字典
- 消息中间件系列三:使用RabbitMq原生Java客户端进行消息通信(消费者(接收方)自动确认模式、消费者(接收方)自行确认模式、生产者(发送方)确认模式)
准备工作: 1)安装RabbitMQ,参考文章:消息中间件系列二:RabbitMQ入门(基本概念.RabbitMQ的安装和运行) 2.)分别新建名为OriginalRabbitMQProducer和O ...
- 使用for of循环遍历获取的nodeList,配置babel编译,webpack打包之后在iphone5下报错
报错信息: Symbol.iterator is not a function [duplicate] 代码示例: function insertCta() { let ctaArr = Array. ...