using Systerm;
namespace 项目名
{
class Prpgram
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}
using Systerm;
namespace 项目名
{
class Prpgram
{
static void Main(string[] args)
{
Console.WriteLine("Hello World");
}
}
}
第三十九课 编程题 if语句
1. 输入一个非零整数,判断是正数还是负数,并输出它的绝对值。
int a = Convert.ToInt32(Console.ReadLine());
if(a > 0)
{
Console.WriteLine(a);
}
else if(a < 0)
{
Console.WriteLine(a+(-a)*2);
}
注:
最后一步我想的笨拙些,可也尝试了一次()里面可以这样运算。
0减负数得正数,我的数学啊,有点硬伤了!!
2. 最大值:输入三个整数,求这个三个数中最大值的平方。
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());
int c = Convert.ToInt32(Console.ReadLine());
int max = a;
if (b > max)
{
max = b;
}
if(c > max)
{
max = c;
}
Console.WriteLine(max*max);
最后输出的是max的平方值,输出()里要写max。
注:
这里需要引用另一个变量“容器”,这样就不会乱了,容器里一直装着最大值,如果直接用a、b、c比较,麻烦不说,额~反正我是没实验出来。这让我想起来a和b的值相互调换的那题,和那个道理一样,嗯,引用一个值还是比较容易的。
3. 任意给出两个大写英文字母,比较它们的大小,规定A、B、C……Z一次从小到大排列。
Console.WriteLine("请每行输入一个大写字母");
char a = Convert.ToChar(Console.ReadLine());
char b = Convert.ToChar(Console.ReadLine());
int c = Convert.ToInt32(a);
int d = Convert.ToInt32(b);
bool e = ((c >= 63 && c <= 90) || (d >= 63 && d <= 90));
if(e == true && c > d)
{
Console.WriteLine("值大小比较:"+"{0}<{1}", d, c);
char f = (char)c;
char g = (char)d;
Console.WriteLine("按字母顺序排列比较:"+"{0}<{1}", g, f);
}
else if(e == true && c < d)
{
Console.WriteLine("{0}<{1}",c,d);
char f = (char)c;
char g = (char)d;
Console.WriteLine("{0}<{1}",f,g);
}
else if(e == false)
{
Console.WriteLine("请输入大写字母");
}
知道自己写的有点傻,再多也不会了,就学了这些。
“Unicode是一种字符编码方案,它为每种语言中的每个字符都设定了统一唯一的二进制编码,以实现跨语言、跨平台进行文本转换、处理的要求。”
第三十七课 编程题 if语句
1. 输入平面直角坐标系中的一个坐标值,判断这个点是位于哪一个象限,原点或坐标轴上。
编者按:象限区域划分完全不对,我不知道什么是象限,去网上查了个大概,然后按照自己意愿划分的象限区域,别笑哈。
int xzhi = Convert.ToInt32(Console.ReadLine());
int yzhi = Convert.ToInt32(Console.ReadLine());
if(xzhi <0 && yzhi > 0)
{
Console.WriteLine("坐标位于第一象限 坐标为:X:{0},Y:{1}",xzhi,yzhi);
}else if(xzhi > 0 && yzhi >0)
{
Console.WriteLine("坐标位于第二象限 坐标为:X:{0},Y:{1}", xzhi, yzhi);
}else if(xzhi > 0 && yzhi < 0)
{
Console.WriteLine("坐标位于第三象限 坐标为:X:{0},Y:{1}", xzhi, yzhi);
}else if(xzhi < 0 && yzhi < 0)
{
Console.WriteLine("坐标位于第四象限 坐标为:X:{0},Y:{1}", xzhi, yzhi);
}else if(xzhi == 0 && yzhi == 0)
{
Console.WriteLine("坐标位于原点 坐标为:X:{0},Y:{1}", xzhi, yzhi);
}else if(xzhi == 0 && yzhi != 0)
{
Console.WriteLine("坐标位于Y轴上 坐标为:X:{0},Y:{1}", xzhi, yzhi);
}else if(xzhi != 0 && yzhi == 0)
{
Console.WriteLine("坐标位于X轴上 坐标为:X:{0},Y:{1}", xzhi, yzhi);
}
这里应该将判断原点放在最后,可以用else{Console.WriteLine("坐标位于原点");}这样些就方便多了。
2. 小技巧:
当写相等容易出错时
例如:
x == 0;可以写成0 == x;这样,如果写成0 = x会自动报错,因为变量不能赋值给数值(少一个=真是难找)。
3. 输入三角形的三条边a、b和c,判断是否可以组成三角形?
满足组成三角形的条件为:
任意两条边的和大于第三边,任意两边之差小于第三边。
int a = Convert.ToInt32(Console.ReadLine());
int b = Convert.ToInt32(Console.ReadLine());
int c = Convert.ToInt32(Console.ReadLine());
if(a > 0 && b > 0 && c > 0)
{
if ((a + b > c) && (b + c > a) && (a + b > c))
{
Console.WriteLine("可以组成三角形");
}
else
{
Console.WriteLine("不可以组成三角形");
}
}
else
{
Console.WriteLine("抱歉,您输入的数值要大于零");
}
加了判断各个值大于零的判断,只是练习。
第三十七课 if-else-if语句 多条件判断
1. if-else-if语句
意思是,判断这个行不行,不行就看看下有一个行不行,如果下一个还不行就再看看下下一个,哪个行就在那个地方住下(输出)。——这样好记。
2. 输入考试成绩(0-100),
如果90-100,评级为A,
如果70-89,评级为B,
如果60-69,评级为C,
如果小于60,评级为D。
根据输入的成绩判断评级。
int a = Convert.ToInt32(Console.ReadLine());
if(a >= 90)
{
Console.WriteLine("评级为:A");
}else if(a >= 70)
{
Console.WriteLine("评级为:B");
}else if(a >= 60)
{
Console.WriteLine("评级为:C");
}
else
{
Console.WriteLine("评级为:D");
}
第三十五课 if语句嵌套
商场举行活动,年龄在18岁到30岁之间可以参加活动,年龄是奇数的可以获得奖品。
int age = Convert.ToInt32(Console.ReadLine());
if(age >= 18 && age <=30)
{
Console.WriteLine("可以参加活动");
if(age % 2 == 1)
{
Console.WriteLine("恭喜获得奖品");
}
else
{
Console.WriteLine("抱歉,没有获得奖品");
}
}
else
{
Console.WriteLine("不可以参加活动");
}
第三十五课 if条件语句
1. if条件语句:
if( ){ }
2. if语句的应用:
if( ){ }
( )里面是判断条件,true或flash,其实就是bool的判断;{ }里面是满足bool条件所要执行的代码。
3. if( ){ }else{ }
else的( )内写的是if( )中判断不满足条件时的语句。
第三十二课 编程题
1. 输入一个三位数,让这个三位数倒序输出。
int a =Convert.ToInt32(Console.ReadLine());
int ge = a %10;
int shi = (a/10)%10;
int bai = a/100;
Console.WriteLine(""+bai+shi+ge);
注:小技巧
Console.WriteLine(""+bai+shi+ge);括号内在开始的地方加双引号代表输入个字符,那么后面的+号就表示拼合了,所以就可以一倒序的形式输出数字了。
2. B国每次发送的电报都是一个五位数组成的,这个五位数的十位和千位组成的两位数就是对应的电报内容,帮助B国对数据进行解密。
自己写的:
int number = Convert.ToInt32(Console.ReadLine());
int qian = (number / 1000) % 10;
int shi = (number / 10) % 10;
int a = Convert.ToInt32("" + qian + shi);
char b = (char)a;
Console.WriteLine(b);
其中的int a = Convert.ToInt32("" + qian + shi);可以写成老师那样的,int a =qian*10+shi;
3. int a = 3;
int b = a++ + a++;
Console.WriteLine(a);
Console.WriteLine(b);
输出结果为:5
7
注:(本人第一次学计算机语言,纯纯的个人理解哈,不喜欢可以略过,同时跪求大神指点)
++在后,先赋值再递增,所以a++先提取a的值为3,但大+号后面还有个a++(这时候就可是迷糊了),当前面的a值3给了后面的a,这个过程就参与了一次次运算,此时a的值变为4(a++的意思是不参与运算时a的值不变,++的意思是只要参与运算就递增,上面的过程就是一次运算,所以大+后面a的值就为4了)。
大+后面的a++也是如此,此时的值为4,本来应该结束了,可是又要参与合成b值的运算,此时a的值就变成了5(好好想想老师给我们讲的例子,int a = 3;b = a++;当问,问a与b的值个是多少?a的值为3,b的值为4)。
4. int a =3;
int b = a++ + (++a);
Console.WriteLine(b);
输出结果为:8
注:(还是小白个人理解,不喜欢可以略过哈,跪求大神指点哦)
a++中a的值为3,移动到后面赋值这个过程中就参加了一次运算,递增为了4,然后(++a)时,值就成为了5。所以,3+5=8。
第三十二课 练习和运算符的优先级
1. 各种运算符:
①数学运算符:
加+ 减- 乘* 除/ 取余%
②关系运算符(比较运算符):
> < >= <= == !=(不等于)
③逻辑运算符:
和&& 或|| 非!
2. 比较运算符要大于逻辑运算符。
例如:
bool isYoung = age>=18 && age <= 60;
比较运算符>=和<=要先运算,再运算逻辑运算符&&。
第三十课 逻辑运算符
1. 逻辑运算符也是布尔运算符bool。
&&:
称为"逻辑与"运算符,如果两个操作数都非零,则条件为真。(比较严谨)
||:
称为"逻辑或"运算符,如果两个操作数中有任意一个非零,则条件为真。(比较委婉)
!:
称为"逻辑非”运算符,用来逆转操作数的逻辑状态,如果条件为真则逻辑非运算符将使其为假。(比较叛逆)
2. 输入一个人的年龄,判断这个人是否是青年,青年标准是18-60岁。
string a = Console.ReadLine();
int b = Convert.ToInt32(a);
bool c = (b > 18) && (b < 60);
Console.WriteLine(c);
第三十课 关系运算符和布尔类型
1. 关系运算符是布尔类型,关系运算符中的比较运算符是比较两个数字的大小的。
bool变量,其中只有两个值,true和false。
bool a = true;
true表示:是的 真的 满足条件 1
bool b = false;
false表示:不是 假的 不满足条件 0
2. 符号条件:
== 判断左边是否等于右边。
> 判断左边是否大于右边。
< 判断左边是否小于右边。
>= 判断左边是否大于或等于右边。(满足
其中一个条件返回结果就为true)
<= 判断左边是否小于或等于右边。(满足
其中 一个条件返回结果就为true)
!= 判断左边是否不等于右边。
第二十八课 自增和自减运算符
1. 自增和自减运算符:
a++;
a--;
意思是a+1,a-1。
2. 运算符的使用方法:
①
int a = 4 ;
a++;
Console.WriteLine(a);
输出结果为5。
②
int a = 4 ;
++a;
Console.WriteLine(a);
输出结果为5。
注:
以上两种方法中a++与++a是有区别的,①中a的值是先表达a的值在递增+1,②中a的值是先递增+1再表达a的值。
3. 应用在其他代码里就能看出区别了:
例1:
int a = 5;
int b = a++;
Console.WriteLine(a);
Console.WriteLine(b);
输出结果分别为:a的值为5,b的值为6.
注:
不难理解,a的值被赋值为5,但到了int b = a++;中是a的值没有变化,还没有和a++被赋值到左边去,所以a是a,++是++他们还没有被一同使用,所以a的值还是5;而b的值为6,因为已经通过运算了,a与++一起运算后的结果给了b。
例2:
int a = 5;
Console.WriteLine(++a);
Console.WriteLine(a);
输出结果为:6
6
因为++a为先递增再赋值,所以先被加了1,然后再继续运算的。
例2:
int a = 5;
Console.WrietLine(a++);
Console.WriteLine(a);
输出结果为:5
6
因为a++为先运算再递增,所以先被取值,然后再继续运算加1。
4.怎么理解a++与++a呢?
要把a与++分开,如果a在前面,那么这一行先用a的值,++部分交给下个运算;如果++在前,++与a在一起运算,说明a已经递增了。(纯属于个人理解,目前我是这么理解的,如果以后有变化再加以理解,求大神们饶命)
第二十八课 练习题和赋值运算符
第二十七课 数学运算符
1. double 小数型变量
如果变量赋值没有写出小数,完全是整数,那么输出以后也完全是整数,后面的小数会被省略掉;如果变量赋值带小数部分的数字,那么输出以后也带有小数部分的数字。
注:
double f = 5/2.0;
Console.WriteLine(f);
输出结果为:2.5
其中5或2两个数字有一个些出小数,那么输出结果就带小数部分。
第二十六课 字符串格式化输出
1. 字符串格式化:
它方便阅读和理解。
Console.WriteLine("格式字符串"(含替代标记),替换值0,替换值1,替换值2,……);
格式字符串必须用引号引起来,并与替代值之间用逗号相隔,后面就是格式化字符串公式中所用到的,相对应的各个值。
例如:
int a = 23 , b = 45;
Console.WriteLin("{0}+{1}+{2}",a,b,a+b);
其中“格式字符串”用来限定具体的输出格式,后面的a,b,a+b为相对应的替换值。
替换值分别对应0,1,2,3……
注:
格式化字符串中的公式是为了取后面相对应的值的,很机械但也很灵活。
2. 可以查找数据类型
百度:c# 数据类型 范围
3. 变量和常量
例如:
int a = 32;
a就是变量,32就是常量。
a是变化的,是个装常量的容器。
第二十五课 命名规范和命名规则
1. 变量命名不能与关键字重名。
2. 命名方法:
①(Camel命名法)驼峰命名法:
第一个单词首字母小写,之后的单词首字母都大写。
②pascal命名法:
每个单词的第一个字母都大写。
如果使用到英文单词缩写,全部使用大写。
例如:
PI HP MP
注:
变量使用驼峰命名法(Camel命名法),方法和类使用Pascal命名法。
第七课 运行第一个HelloWorld程序
1 using System;
2 namespace_001_开始
3 {
4 class Program
5 {
6 static void Main(string[] args)
7 {
8 Console.WriteLine("Hello World!");
9 }
10 }
11 }
第一行:
引入一个命名空间。
第二行:
namespace: 名字空间namespace相当于windows操作系统中的文件夹,因为现在的程序大多都是大项目或是代码不是一个人来完成的,难免会有变量声明时出现重名的现象,比如程序员A定义了一个变量x程序员B也定义了一个x,这时为了精确定位是哪个x用namespace加以限制就可以了,比如A的x在一个叫 proA的名字空间里,B的在proB的名字空间里那么对x定位时可以直接用proB::x或proA::x来表示具体的x,是不是和windows里的c:\programe files和d:\programe files很相似呢,就这个原理啦~
第四行:
变量class和变量名Program。
第六行:
使用c#中的一个main方法。
第二十四课 变量的交换
1. 变量交换需要引入第三个变量协助完成。
最原始的方法,但很直观。
2. 利用两个变量相加的和来完成交换:
例如:
int a =50;
int b = 5;
a = a + b;
b = a - b;
a = a - b;
Console.WriteLine(a);
Console.WriteLine(a);
输出结果为:5
50
3. 第一种方法较第二种方法快,虽然多申请了个变量,但运算速度上要比第二种方法快些,并且有直观性。
temp临时变量
第二十一课 怎么得到用户输入
1. 输入:
Console.ReadLine();
2. 输入后输出:
String str = Console.ReadLine();
Console.WriteLine(str+"-");
在输出窗口键入要输出的字符串后回车,然后被输出在它的下一行,结果为你的输入+-。
3. 将数字字符串转换成相应的数字:
String str = Console.ReadLine();
int strint = Convert.ToInt32(str);
Console.WriteLine(strint+"-");
例如:
当我们输入12时,输出结果为12-,输出的12为可以参与运算的数字,而输入时的12为一个字符串。
其中,Convert.ToInt32(str);是C#提供的一种工具方法,也就是老师经常说的方法。
注:
只能将数字的字符串转换成相应的数字,其他形式的字符串则不能转换,比如:“tb”"12.4"就不能被转换成相应的数字,因为他们不是数字类型或整数类型。
简化缩写将数字型字符串转换数字型缩写语句:
int a=Convert.ToInt32(Console.ReadLine());
如:
String str = Console.ReadLine();
int strInt = Convert.ToInt32(str);
int a=Convert.ToInt32(Console.ReadLine());
Console.WriteLine(strInt + "-" +a);
需要输入一次数字字符串,回车,再输入一次数字字符串,再回车就能得到输出结果了,因为,有两次输入和两处转换。
第20课 字符串的声明和简单拼接操作
1. char a = '1';
int b = a;
Console.WriteLine(a);
Console.WriteLine(b);
输出结果为:1
49
注:当字符类型为字符串类型char时,‘1’输出为字符串1,不是数字而是字符串,不能参与运算的1,当赋值给整数型b以后,字符‘1’则变成了相应的数字49存储在整数类型名为b中。
2. \ 为转义字符。
char a = '\n'; //输出为n。
char a = '\\'; //输出为\。
char a = '\"'; //输出为"。
3. Console.WriteLine("c:\\a\\b\\c");
Console.WriteLine(@"c:\a\b\c");
它们的输出结果都为:c:\a\b\c
其中@的用法是将引号内的转义字符\失效,而第一个里面的("c:\\a\\b\\c")转义字符都有效。
4. 字符串的声明:
string str = @ "c:\\a\\b\\c";
声明字符串,加@符号后,双引号中的\字符就没有转义的功能,直接就是c:\\a\\b\\c,加@符号的字符串是可以换行的,并且输出后保持换行。
5. 如何在@"c:\\a\\b\\c"中加入引号:
@"c:\\a\\b\\c"中可以用两个引号("")表示加入一个引号。
例如:
string str = @ "c:\a\""b\c";
Console.WriteLine(str);
输出的结果为:c:\a\""b\c
6. 字符串拼接的几种形式:
①string str = "123" + "456";
Console.WriteLine(str);
输出结果为:123456
②也可以用变量+字符串来拼接:
string str = "123" + "456";
string str2 = "str"+yyyy;
Console.WriteLine(str2);
输出结果为:123456yyyy
③Console.WriteLine("www"+123);
输出结果为:www123
注:用+将两段字符串拼接在一起,+两端的字符串都分别用引号引起来。
7. char和string的区别:
char是字符类型,string是字符串类型。String可以看作是char组成的列表。