数据类型
数据类型不同,意味着在内存中的存贮形式不同,参与运算的方式也不同。编译器对待不同数据类型的方式也不同。
note:快捷键 cw + 2* Tab,Console.WriteLine。
var 可以自动推断赋值的类型。e.g.
var myNumber1 = 3;
Console.WriteLine($"myNumber1 is "+ myNumber1.GetType().Name);
var myNumber2 = 3L;
Console.WriteLine($"myNumber2 is "+ myNumber2.GetType().Name);
var myNumber3 = 3.0;
Console.WriteLine($"myNumber3 is "+ myNumber3.GetType().Name);
var myNumber4 = 3.0f;
Console.WriteLine($"myNumber4 is "+ myNumber4.GetType().Name);
输出的结果为
声明函数时也要用到数据类型,定义了函数运行的结果是什么数据类型。
变量
存放数据的地方
int x; // 声明一个短整型变量x
x = 100; //用x装一个短整型数100,如果x= 100L; 会报错。
方法(函数,算法)
用来使用数据。方法是有数据类型的。
三类常见的方法
以上三类方法,在主程序中的调用。
1)有数据的输入,也有数据的输出。
数据是原料,方法就是数据的加工厂,加工的结果返回给方法。
e.g.
class Methods
{
// Add工厂加工原料int a和int b,返回值也是int,所以要int Add。
//注意,下面第一行只是“添加原料”,还需要“处理原料”,程序没结束,不能加";",否则报错。
public int Add(int a, int b) // 后面跟{ },“处理原料”。处理分两步,先+,再返回值。
//添加public,为了让Class Calculator以外的也能调用方法Add。
{
int result = a + b;
return result;
}
}
static void Main(string[] args)
{
//声明一个引用变量c(指针),创建一个Calculator的实例,用c来引用这个实例。
Methods c = new Methods ();
//已经定义用c来引用实例,就可以调用实例中的公共方法Add,c.Add(),并添加原料。
// 如果Add方法不是public的,就无法通过引用变量c来调用。
//c.Add(2, 3)意味着原料已经传入数据加工厂,加工之后的结果由整型变量t接受,为5。
int t = c.Add(2, 3);
Console.WriteLine(t);
}
2)没有数据的输入,但是有数据的输出。
有些函数,不用“原料”也能返回值。e.g.
class Methods
{
public string GetToday() //GetToday()后面不需添加任何原料,也能获得返回值
{
int day = DateTime.Now.Day;
return day.ToString();
}
}
static void Main(string[] args)
{
Methods c = new Methods ();
string str = c.GetToday();
Console.WriteLine(str); // 输出结果为当天的日期
}
3)有数据的输入,没有数据的输出。
有些方法不需要返回任何值。e.g.
// 方法PrintSum用于打印两个短整型数之和
// void,表示不需要返回值
class Methods
{
public void PrintSum(int a, int b)
{
int result = a + b;
Console.WriteLine(result);
}
}
static void Main(string[] args)
{
Methods c = new Methods ();
c.PrintSum(4,6);
// 不需要Console,也能直接输出结果为10。PrintSum本身就是一个打印方法。
//不需要赋值给任何变量,没有返回任何值,给变量赋值反而会报错。e.g. sum = c.PrintSum(4,6) 会报错。
}
算法简介
e.g.给定整数x,将x到1给打印出来。 有两种实现方式:
1)循环
2)递归
循环和递归在主程序中的调用。
练习:计算1到100的和
答案都是