zoukankan      html  css  js  c++  java
  • 传值、传址、结构体

    传值是只传递这个变量的值,传值是传递这个变量的地址。

    out传址

            public void hanshu1(int a , out int b)
            {
                b = a + 10; 
            }
                int a = 5;
                int rr;
                hanshu.hanshu1(a,out rr);
                Console.WriteLine(rr);

    以上使用out传址 打印出来的值是15

    但如果需要函数返回多个值时,可以用减号拼接起来,返回后用split分割开

            public string Fanhui(string name , string sex,int age)
            {
                age += 10;
                return name + "-"+sex +"-"+ age;
            }
                string s = hanshu.Fanhui("张三", "", 33);
                string[] aa = s.Split('-');
                foreach (string q in aa)
                {
                    Console.WriteLine(q);
                }

    结构体: 结构体:自定义类型    值类型
            一组变量的组合
            需要定义的位置,class里面,main函数外面,里面包含的变量可以使多种数据类型的

    例:学生信息的结构体:学号  姓名 性别 分数

            struct student
            {
                public int xuehao;
                public string name;
                public string sex;
                public double score;
            }
                student st = new student();
                ArrayList al = new ArrayList();
                Console.Write("请输入班级人数:");
                int a = int.Parse(Console.ReadLine());
                for (int i = 0; i < a; i++)
                {
                    student sst = new student();
                    Console.Write("请输入第{0}个学生的学号:", i + 1);
                    sst.xuehao = int.Parse(Console.ReadLine());
                    Console.Write("请输入第{0}个学生的姓名:", i + 1);
                    sst.name = Console.ReadLine();
                    Console.Write("请输入第{0}个学生的性别:", i + 1);
                    sst.sex = Console.ReadLine();
                    Console.Write("请输入第{0}个学生的分数:", i + 1);
                    sst.score = double.Parse(Console.ReadLine());
                    al.Add(sst);
                }
                Console.WriteLine("所有人员信息输入完毕,请按回车键开始打印。");
                Console.ReadLine();
                for (int i = 0; i < al.Count; i++)
                {
                    student sst = (student)al[i];
                    Console.WriteLine("第{0}个学生的学号是:{1},姓名是{2},性别是{3},分数是{4}", i + 1, sst.xuehao, sst.name, sst.sex, sst.score);
                }

    另外 结构体可以互相调用:

            struct student
            {
                public int xuehao;
                public string name;
                public string sex;
                public Score score;
            }
    
            struct Score
            {
                public double yufen;
                public double shufen;
                public double yingfen;
            }


    练习:超市购物问题

    去超市选择要购买的商品            

    0.开始购买            

    1.洗发水   15元            

    2.牙刷      5元            

    3.可口可乐 3元            

    4.水杯      12元            

    5.毛巾      6元            

    6.结算

    输入想要的物品编号,输入每种商品需要买几件

    结算:需要列出来商品名称、单价、数量、

    总价以及所有物品总价,结账时间

    然后输入交给收银员的钱数,

    不够,请继续交钱

    够,结算,找钱

                Console.WriteLine("0.开始购买");
                Console.WriteLine("6.结算");
                Console.Write("请开始购买:");
                int biao = 0;
                double zong = 0;
                ArrayList al = new ArrayList();
                for (int i = 0; i == 0; )
                {
                    string a = Console.ReadLine();
                    if (a == "0")
                    {
                        for (int k = 0; k == 0; )
                        {
                            Console.WriteLine("1.洗发水     15元");
                            Console.WriteLine("2.牙刷     5元");
                            Console.WriteLine("3.可口可乐     3元");
                            Console.WriteLine("4.水杯    12元");
                            Console.WriteLine("5.毛巾     6元");
                            Console.WriteLine("6.结算");
                            Console.Write("请输入选项:");
                            string aa = Console.ReadLine();
                            Shop sp = new Shop();
                            switch (aa)
                            {
                                case "1":
                                    sp.name = "洗发水";
                                    sp.price = 15;
                                    biao++;
                                    Console.Write("您选择的是洗发水,请输入需要多少瓶:");
                                    break;
                                case "2":
                                    sp.name = "牙刷";
                                    sp.price = 5;
                                    biao++;
                                    Console.Write("您选择的是牙刷,请输入需要多少支:");
                                    break;
                                case "3":
                                    sp.name = "可口可乐";
                                    sp.price = 3;
                                    biao++;
                                    Console.Write("您选择的是可口可乐,请输入需要多少瓶:");
                                    break;
                                case "4":
                                    sp.name = "水杯";
                                    sp.price = 12;
                                    biao++;
                                    Console.Write("您选择的是水杯,请输入需要多少个:");
                                    break;
                                case "5":
                                    sp.name = "毛巾";
                                    sp.price = 6;
                                    biao++;
                                    Console.Write("您选择的是毛巾,请输入需要多少个:");
                                    break;
                                case "6":
                                    if (biao != 0)
                                    {
                                        Console.Write("总价:{0}元。请输入缴费金额:", zong);
                                        double qian = double.Parse(Console.ReadLine());
                                        while (qian < zong)
                                        {
                                            Console.Write("金额不足,请继续缴费:");
                                            qian += double.Parse(Console.ReadLine());
                                        }
                                        Console.WriteLine("缴费完成,找零{0}元,{1},欢迎下次光临。", qian - zong,DateTime.Now);
                                        i = 1;
                                        k = 1;
                                    }
                                    else
                                    {
                                        Console.WriteLine("您并未购买任何商品,退出超市");
                                        i = 1;
                                        k = 1;
                                    }
                                    break;
                                default:
                                    Console.Write("输入有误,请重新输入:");
                                    break;
                            }
                            if (aa == "6")
                            {
                                break;
                            }
                            for (; ; )
                            {
                                try
                                {
                                    sp.shuliang = int.Parse(Console.ReadLine());
                                    break;
                                }
                                catch
                                {
                                    Console.Write("输入有误,请重新输入数量:");
                                }
                            }
                            zong += (sp.price * sp.shuliang);
                            al.Add(sp);
                            Console.Write("购买成功,请按回车继续购买:");
                            Console.ReadLine();
                            Console.Clear();
                            for (int j = 0; j < al.Count; j++)
                            {
                                Shop ssp = (Shop)al[j];
                                Console.WriteLine("您已经选择了{0},单价是:{1},数量:{2},单品总价:{3}", ssp.name, ssp.price, ssp.shuliang, ssp.price * ssp.shuliang);
                            }
                        }
                    }
                    else if (a == "6")
                    {
                        Console.WriteLine("您并未购买任何商品,退出超市");
                        i = 1;
                    }
                    else
                    {
                        Console.Write("输入有误,请重新输入:");
                    }
                }

    总结:结构体是个自定义的类 使用前需要初始化、实例化 其使用方法跟其他类区别不大 只是可以包含多种其他类型

  • 相关阅读:
    PHP jquery结合HTML5鼠标拖选头像图片并上传
    HTML5 CSS3 SwitchButton 自定义Radio风格
    IE浏览器在虚拟机中无法正常显示字符
    jQuery在updatepanel中使用造成内存泄露
    bootstrap下拉列表重置联动
    bootstrap正则表达式验证手机 座机 邮箱
    bootstrap重置校验方法
    分页
    函数解一元二次方程
    集合
  • 原文地址:https://www.cnblogs.com/wt627939556/p/5977587.html
Copyright © 2011-2022 走看看