为什么要使用方法?
因为某些常用的代码,在不停的出现执行。所以要把这些经常使用的代码,封转成一个方法

方法是什么?
函数就是将一堆代码进行重用的一种机制


方法的定义。
[访问修饰符] [static ]   返回值类型   方法名([参数列表])
{
 方法体;
}

注意:我用[]标记的,表示可以省略

方法的访问修饰符:

访问修饰符 说明
public 公有访问。不受任何限制。
private 私有访问。只限于本类成员访问,子类,实例都不能访问。
protected 保护访问。只限于本类和子类访问,实例不能访问。
internal 内部访问。只限于本项目内访问,其他不能访问。
protected internal 内部保护访问。只限于本项目或是子类访问,其他不能访问

static:静态的。被static标记的方法叫做静态方法,没有被static 标记的方法叫做实例方法,咱们现阶段学习的都是静态方法

返回值类型:这个方法要返回去的值的类型 如果是void 就表示没有返回值

方法名:随便起,但是要符合Pascal(每个单词的首字母要大写,其余字母要小写)

参数列表:传给这个方法的参数

():不能省略,不管有木有参数,都不能省略
 
方法的调用
在静态方法中调用:类名.方法名();如果在当前类中,调用当前类中的方法,那么类名可以省略
咱们写的方法,要想这个方法被执行,就必须放到Main()函数里面调用。
使用方法 就是为了让方法帮助咱们做一件事儿,
参数:为了实现这个方法的功能,我们必须要给这个方法的东东
返回值:就是我要的东西

咱们经常使用的方法:
Console.WriteLine();
Console.ReadLine();
Console.ReadKey();
int.Parse();
Convert.ToInt32();


3、局部变量
局部变量的定义:
局部变量的作用域:

 

4、 被调用者想得到调用者里面的变量的值:
 1)一种 来一个字段  注意:这个字段不能定义到方法里面,要定义到方法外面,比如类里面(静态方法中,只能访问到静态字段)
 2)加个参数 直接把值传进来就ok了
 调用者想得到被调用者的值:
 
之后做了很多的练习

读取输入的整数,定义成方法,多次调用(如果用户输入的是数字,则返回,否则提示用户重新输入)
         static void Main(string[] args)
        {
            //1 读取输入的整数,定义成方法,多次调用(如果用户输入的是数字,则返回,否则提示用户重新输入)

            //要给用户返回一个int类型的值 
            Console.WriteLine("请输入一个数字");
            string str = Console.ReadLine();    //用户输入的字符串  在方法中进行转换
            int number = Number(str);
            Console.WriteLine("转换成功,您刚刚输入的数字是{0}",number);
            Console.ReadKey();
          
        }
        ///
        /// 接收用户输入的一个字符串,判断是否可以转换为int类型的数字
        ///
        /// 接收一个string类型的字符串进行判断
        /// 成功返回一个int类型的值
        public static int Number(string str)  //接收用户输入的是个string类型的   而返回的是个int类型多的
        {
            while (true)
            {
                try
                {
                    int number = Convert.ToInt32(str);   //开始转换
                    return number;     //转换成功以后 返回一个值
                }
                catch
                {
                    Console.WriteLine("转换失败,请重新输入");  //提示用户转换失败
                    str = Console.ReadLine();                 //并重新接收 
                   
                }

            }
        }
  
/2 还记得学循环时做的那道题吗?只允许用户输入y或n,请改成方法  
   static void Main(string[] args)
        {
            //2 还记得学循环时做的那道题吗?只允许用户输入y或n,请改成方法
            Console.WriteLine("你确定要关机吗 [Y/N]");
            string answer = Console.ReadLine();
            string an= Answer(answer);
           string a= an== "Y" ? "正在关机" : "取消操作";
            Console.WriteLine("您的状态是{0}",a);
            Console.ReadKey();


        }
        ///
        /// 只允许用输入[Y/N]的判断,无返回值
        ///
        ///
        public static string Answer(string answer)
        {
            while (true)
            {
                if (answer == "Y" || answer == "N")
                {
                    return answer;
                }
                else
                {
                    Console.WriteLine("输入有误,请重新输入");
                    Console.WriteLine("你确定要关机吗 [Y/N]");
                    answer = Console.ReadLine();
                }

            }
                   
        }

查找两个整数中的最大值:int Max(int i1,int i2)  
            static void Main(string[] args)
        {
            //3查找两个整数中的最大值:int Max(int i1,int i2)
            Console.WriteLine("请输入一个数字");
            int number1 = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入第二个数字");
            int number2 = Convert.ToInt32(Console.ReadLine());

            int max=Max(number1, number2);
            Console.WriteLine("两个数当中,比较大的一个是{0}",max);
            Console.ReadKey();
           
          

        }
        ///
        /// 查找两个数当中最大的一个数字
        ///
        /// 第一个数字
        /// 第二个数字
        ///
        public static int Max(int number1,int number2)
        {
            return number1 > number2 ? number1 : number2;
        }  
 
 计算输入数组的和
        static void Main(string[] args)
        {
            //4计算输入数组的和:int Sum(int[] values)
            int [] numbers = {1,2,3,4,5,6,7,8,9,10 };
            int sum=Sum(numbers);   //把数组放到方法里边 来进行计算
            Console.WriteLine("数组的和是{0}",sum);
            Console.ReadKey();
          
        }
        ///
        /// 计算一个int类型数组的和
        ///
        /// 存放一个int类型的数组
        ///
        public static int Sum(int[] numbers)   //要返回一个和,所以,有返回值
        {
            int sum = 0;  //定义一个变量来接收总和
            for (int i = 0; i < numbers.Length; i++)
            {
                sum += numbers[i];          //sum等于数组中 每个元素相加后的结果
            }
            return sum; ;
        }
  
 //1、编写一段程序,运行时向用户提问“你考了多少分?(0~100)”,
  //接受输入后判断其等级并显示出来。判断依据如下:等级={优 (90~100分);
//良 (80~89分);中 (60~69分);差 (0~59分);
           
            int score;
            Console.WriteLine("你考了多少分");
            string strScore = Console.ReadLine();
            while (true)
            {
                try
                {
                    score = Convert.ToInt32(strScore);
                    if (score > 100 || score < 0)
                    {
                        Console.WriteLine("请输入正确范围内的成绩");
                        strScore =Console.ReadLine();
                    }
                    else
                    {
                        break;
                    }
                }
                catch
                {
                    Console.WriteLine("请输入正确的成绩");
                    strScore = Console.ReadLine();
                }

            }
          
           string level= Level(score);
           Console.WriteLine("你的等级是{0}",level);
           Console.ReadKey();
        }
        public static string Level(int score)
        {
            string str = "";
            if (score >= 90 )
            {
                str = "优";
            }
            else if (score >= 80)
            {
                str = "良";
            }
            else if (score >= 70)
            {
                str = "中";
            }
            else
            {
                str = "差";
            }
            return str;
        }
  
第二种方式
 static void Main(string[] args)
        {
            Console.WriteLine("请输入一个数字");
            string strScore = Console.ReadLine();
            int score = 0;
            while (true)
            {
                try
                {
                    score = Convert.ToInt32(strScore);
                    if (score > 100 || score < 0)
                    {
                        Console.WriteLine("请输入正确范围的成绩");
                        strScore = Console.ReadLine();
                        continue;
                    }
                    else
                    {
                        break;
                    }
                }
                catch
                {
                    Console.WriteLine("输入有误,请重新输入");
                    strScore = Console.ReadLine();
                }
            }

            string strLevel = Level(score);
            Console.WriteLine("这次考试成绩的等级是{0}",strLevel);
            Console.ReadKey();
        }

        public static string Level(int score)
        {
            string str = "";
            switch (score / 10)
            {
                case 10:
                case 9:
                    str = "优";
                    break;
                case 8:
                    str = "良";
                    break;
                case 7:
                    str = "中";
                    break;
                default:
                    str = "差";
                    break;
            }
            return str;//把等级返回
        }
  
2、  编写一个程序,输出所有的水仙花数
(水仙花数为一个三位数,他各个位数上的立方和等于该数本身)
        static void Main(string[] args)
        {
           
            string str= ShuiXianHua();
            Console.WriteLine(str);
           Console.ReadKey();
          
        }
        public static string ShuiXianHua()
        {
            string str="";
            for (int i = 100; i <=999; i++)
            {
                int bai = i / 100;
                int shi = i % 100 / 10;
                int ge = i % 10;
                int sum = bai * bai * bai + shi * shi * shi + ge * ge * ge;
                if (sum == i)
                {
                    str += i + " ";
                }

            }
            return str;       
        } 
  
 //7、求数组的最大值、最小值  
   static void Main(string[] args)
        {
            int[] numbers = {1,2,3,4,5,6,7,8,9 };
            int max=Max(numbers);
            int min = Min(numbers);
            Console.WriteLine("数组中的最大值是{0},最小值是{1}",max,min);
            Console.ReadKey();

        }
        ///
        /// 判断一个int类型数组中的最大值
        ///
        /// 一个int类型的数组
        /// 最大值
        public static int Max(int[] numbers)
        {
            int max = numbers[0];
            for (int i = 0; i < numbers.Length; i++)
            {
                if (max < numbers[i])
                {
                    max = numbers[i];
                  
                }
            }
            return max;
        }
        ///
        /// 判断一个int类型数组中的最小值
        ///
        /// 一个int类型的数组
        /// 最小值
        public static int Min(int[] numbers)
        {
            int min = numbers[0];
            for (int i = 0; i < numbers.Length; i++)
            {
                if (min > numbers[i])
                {
                    min = numbers[i];

                }
            }
            return min;
        }
  
 //8、求两个数的和  
        static void Main(string[] args)
        {
          
            Console.WriteLine("请输入数字A");
            int numberA = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("请输入数字B");
            int numberB = Convert.ToInt32(Console.ReadLine());

            int sum=Sum(numberA, numberB);
            Console.ReadKey();

        }
        ///
        /// 求两个数的和
        ///
        /// 第一个数字
        /// 第二个数字
        /// 返回一个和
        public static int Sum(int numberA,int numberB)
        {
            return numberA + numberB;
        } 
  
//为教师编写一个程序,
该程序使用一个数组存储30个学生的考试成绩,并给各个数组元素指定一个1-100的随机值,然后计算平均成绩。  
   static void Main(string[] args)
        {
           

            int[] score = new int[30];
            int avg=Avg(score);
            Console.WriteLine("平均成绩是{0}分",avg);
            Console.ReadKey();


        }
        public static int Avg(int [] numbers)
        {
            Random r = new Random();      //定义一个随机数
            int sum = 0;                 //
            for (int i = 0; i < numbers.Length; i++)
            {
                numbers[i] = r.Next(1, 101);
              
                sum += numbers[i];
            }

            return sum / numbers.Length;

        } 

posted on 2014-03-31 23:19  Fighting二零一四  阅读(797)  评论(0编辑  收藏  举报