将 Array 转换为原始方法来表达相同的结果,不使用 LINQ,仅使用 int。

2024-04-08

我的程序记录了四个房间在瓶子驱动器中收集的瓶子数量。当用户输入 quit 时,会显示每个房间收集的瓶子数量,并打印出拥有最多瓶子的房间。我使用了一个数组来跟踪房间号。如何更改方法而不是使用数组,我想启动 room1、room2、room3、room4。如果我不使用数组,我可以使用循环数组调用来写入行吗?我的意思是这些线条。

            int room = int.Parse(quit);
            Console.Write("Bottles collected in room {0}: ", room);
            // This line adds the count of bottles and records it so you can continuously count the bottles collected.
            rooms[room - 1] += int.Parse(Console.ReadLine());

还有这一行:

           }//Writes the bottles collected by the different rooms
            Console.WriteLine("Bottles collected in room {0} = {1}", i + 1, rooms[i]);

这是我的代码:

         namespace BottleDrive
   {
    class Program
   {
    static void Main(string[] args)
    {//Initialize array of rooms to 4
        int[] rooms = new int[4];
        //Start of while loop to ask what room your adding into. 
        while (true)
        {
            Console.Write("Enter the room you're in: ");
            //If user enters quit at anytime, the code will jump out of while statement and enter for loop below
            string quit = Console.ReadLine();
            if (quit == "quit")
                //Break statement allows quit to jump out of loop
                break; 


           //Variable room holds the number of bottles collect by each room. 
            int room = int.Parse(quit);
            Console.Write("Bottles collected in room {0}: ", room);
            // This line adds the count of bottles and records it so you can continuously count the bottles collected.
            rooms[room - 1] += int.Parse(Console.ReadLine());

        }

        int maxValue = 0;//initiates the winner, contructor starts at 0
        int maxRoomNumber = 0;//initiates the room number that wins
        for (int i = 0; i < rooms.Length; ++i)//This loop goes through the array of rooms (4)
        {
            if (rooms[i] > maxValue)//Makes sure that the maxValue is picked in the array
            {//Looking for room number for the 
                maxValue = rooms[i];
                maxRoomNumber = i + 1;
            }//Writes the bottles collected by the different rooms
            Console.WriteLine("Bottles collected in room {0} = {1}", i + 1, rooms[i]);
        }
        //Outputs winner
        Console.WriteLine("And the Winner is room " + maxRoomNumber + "!!!");

    }
}
 }

谢谢你,我很感激这个社区对我学习 c Sharp 的帮助。


您无法轻松地将数组替换为单个变量。如果您有类似的声明

int room1 = 0, room2 = 0, room3 = 0, room4 = 0;

并想要访问房间号i那么你必须写

switch (i) {
    case 1:
        Console.WriteLine(room1);
        break;
    case 2:
        Console.WriteLine(room2);
        break;
    case 3:
        Console.WriteLine(room3);
        break;
    case 4:
        Console.WriteLine(room4);
        break;
}

使用数组你可以简单地写

Console.WriteLine(rooms[i]);

如果你真的想采用这种无数组的方式,我建议你使用辅助方法:

private void SetRoom(int room, int value)
{
    switch (room) {
        case 1:
            room1 = value;
            break;
        case 2:
            room2 = value;
            break;
        case 3:
            room3 = value;
            break;
        case 4:
            room4 = value;
            break;
    }
}

public int GetRoom(int room)
{
    switch (room) {
        case 1:
            return room1;
        case 2:
            return room2;
        case 3:
            return room3;
        case 4:
            return room4;
        default:
            return 0;
    }
}

您必须将变量 room1 到 room4 声明为类成员才能完成此操作。

现在你可以写:

Console.WriteLine(GetRoom(i));

或者代替rooms[i] += n;

SetRoom(i, GetRoom(i) + n);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 Array 转换为原始方法来表达相同的结果,不使用 LINQ,仅使用 int。 的相关文章

随机推荐

  • 动态更改 UITableView 的内容

    我有一个 NSURL 对象 它根据用户在搜索栏中输入的变量从我的网站获取数据 我将这些数据拆分为 NSArray 完成后 我希望在 UITableView 中显示数据 我的问题是这样的 是否可以将数据动态加载到 UITableView 中
  • Orbeon 4.5 - 如何传递请求参数?

    我们正在从 Orbeon 3 9 升级到 4 5 在 Orbeon 3 9 中 我们将请求参数传递给发送成功 URI oxf fr detail send success uri 当用户单击自定义提交按钮时 我们通过修改来做到这一点pers
  • 对资源管理器中选定的文件执行 PowerShell 命令

    如何在 PowerShell 中仅对资源管理器中选定的文件执行重命名命令 我有 PS 命令 但我不知道将其放在 Windows 注册表中的何处 以便可以在资源管理器的右键单击上下文菜单中访问 HKCR shell 包含您需要的内容 使用您想
  • 将静态数据(不随时间变化)添加到 LSTM 中的序列数据

    我正在尝试建立一个如下图所示的模型 请看下图 我想在 LSTM 层中传递序列数据 在另一个前馈神经网络层中传递静态数据 血型 性别 后来我想将它们合并 然而 我对这里的维度感到困惑 如果我的理解是正确的 如图所示 5维序列数据如何与4维静态
  • 提取 Zip 内的目录

    我正在编写一个脚本 将 zip 存档中的文件提取到该脚本所在的目录中 这是我的代码 zip new ZipArchive if zip gt open latest zip TRUE zip gt extractTo zip gt clos
  • Web 服务器内置 Azure 应用服务

    背景 我正在托管一个静态 Web 应用程序 由 NUXTJS 在 Azure 应用服务上生成 现在我想通过以下方式配置更多内容web config比如为多个域设置 CORS 设置 但我找不到任何文档来确定 Azure 应用程序服务中集成 安
  • VB.NET 和 COM Interop 看似随机崩溃

    我正在考虑用 VB 6 重写一个全新的 VB NET 应用程序 该应用程序在终端服务下运行并大量使用 COM 由于某种原因 该应用程序存在随机奇怪之处 随机访问冲突错误 WinDbg 异常分析指向 dll 如 comdlg32 dll ms
  • Bigquery 如果字段存在

    简而言之 有没有办法在不存在的 BQ 字段中进行查询 并接收这些字段的 null 值 我有几乎同样的问题BigQuery IF 字段存在 THEN https stackoverflow com questions 32276601 big
  • PL/SQL 游标 for 循环

    我相信我需要一个循环游标来浏览表 test data 中的 street1 列 我有一个程序需要测试表中的每一行 这是我到目前为止所拥有的 cursor c1 is street1 from test data Begin If Instr
  • 如何调用Parent重写方法

    我有两个类 Parent 和 Child 从 Child 类 我调用父类重写方法 show 从父类 我调用另一个方法 display 但由于调用了 Child 方法 该方法也被重写 我想从show方法调用Parent方法display pu
  • jQuery - 翻转时更改另一个图像的 src

    我想知道是否有人可以帮助我 我有 2 张图像 如果有意义的话 我希望能够在翻转另一张图像时更改其中一张图像的 src 例如 我有 2 张图片 当有人将鼠标悬停在 imimage2 jpg 上时 我希望 imimage1 jpg 更改为 im
  • 我如何将长文本视图(字符串)显示到android的多个页面中

    我正在开发一个看起来像电子书阅读器 text pdf 文件等 的应用程序 我有一个巨大的文本 分为不同的章节或页面 现在的问题是如何将整个内容分成若干页并一页一页地显示 我怎么知道屏幕适合的字符数 取决于屏幕尺寸和字体大小 我完全不知道从哪
  • Javascript 加载、就绪、domready、DOMContentLoaded 事件

    我有点迷失在 启动 事件 有很多不同的事件 并且在 DOM 和各种框架 如 jQuery 中以不同的方式命名 所有可能的启动事件有哪些 它们有何不同 您能否显示一个简单的时间线来演示这些事件的触发顺序 ready JavaScript 提供
  • 逻辑运算的快捷方式

    我只是想知道 逻辑运算符 就像如果我想做类似的事情i i 10 我可以i 10 我搜索这个的原因是因为我有一个验证函数 它分为几个函数 以下是模拟 function f1 return Math ceil Math random 10 2
  • React JS 中适合父容器的多行文本

    我正在使用 Flexbox 布局 并尝试调整特定 div 中的文本大小以适合该 div 例如 如果我有如下代码 div div A really really really really long phrase here that will
  • 请注意,文档的某些部分可能包含文档检查器无法删除的个人信息

    I use Excel 2013 and Power View and SQL Server 2008 R2 创建我的后Data Source and my chart in Excel当我想要保存 Excel 文件时 我收到此消息 be
  • Elm - 检查值的类型

    是否存在检查 Elm 中变量类型的函数 例如 重复 numberTwo 2 returnType numberTwo number String 这样做的动机是当你使用Signal map n 通常会出现这样的情况 并非所有要应用的函数的参
  • 从外部访问 Leaflet.js GeoJson 功能

    我想从外部与传单驱动的地图的 GeoJson 覆盖层 多边形 进行交互L 的领域 但我似乎无法访问由L 互动包括 获取边界 我的特征 fitBounds 我的特征 设置样式 ETC 我可以看到 Leaflet 暴露了 L GeoJSON g
  • Nim 中的迭代器生成函数:在分配迭代器时起作用,在直接调用它时卡住

    我尝试创建一个创建迭代器的过程 如下所示 proc makeCDFrom start int iterator int result iterator int var i int start while i gt 0 echo i i yi
  • 将 Array 转换为原始方法来表达相同的结果,不使用 LINQ,仅使用 int。

    我的程序记录了四个房间在瓶子驱动器中收集的瓶子数量 当用户输入 quit 时 会显示每个房间收集的瓶子数量 并打印出拥有最多瓶子的房间 我使用了一个数组来跟踪房间号 如何更改方法而不是使用数组 我想启动 room1 room2 room3