You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#并行数组中如何让布尔方法返回结果并附带提示信息?

核心问题分析

  1. isEmpty方法冗余变量与逻辑混乱:方法内定义的balance1、balance2、balance3完全多余,均重复判断同一个入参balance == 0,且命名与外部变量冲突易混淆。最终返回的balance1 || balance2 || balance3等价于balance == 0,逻辑本身无错,但重复输出是调用方式导致的。
  2. 重复输出的根源:你用Console.WriteLine(isEmpty(balanceX))调用方法,而isEmpty内部已通过Console.WriteLine输出提示,导致每次调用先输出方法内的提示,再输出返回值,出现重复内容。
  3. 数组初始化冗余:先声明长度为2的数组,再重新赋值为长度3的数组,属于无效冗余操作。

修正后的代码

// 直接初始化正确长度的并行数组
string[] customerName = { "John Doe", "Jane Doe", "John Smith" };
int[] bankAccount = { 123456, 654321, 987654 };
double[] balance = { 100.00, 200.00, 0.00 }; // 加入0余额测试用例

// 打印客户信息
for (int i = 0; i < customerName.Length; i++)
{
    Console.WriteLine($"{customerName[i]}\tAccount Number: {bankAccount[i]}\tBalance: ${balance[i]:F2}");
}

// 调用isEmpty方法,直接调用避免重复输出
isEmpty(balance[0]);
isEmpty(balance[1]);
isEmpty(balance[2]);

// 修正后的isEmpty方法
bool isEmpty(double balance)
{
    // 若需包含负数判断,改为 balance <= 0.00
    if (balance == 0.00)
    {
        Console.WriteLine("The balance is empty");
        return true;
    }
    else
    {
        Console.WriteLine("The balance is not empty");
        return false;
    }
}

// 存款方法部分
double deposit = 200.00;
double deposit1 = 300.00;
double deposit2 = 400.00;

Console.WriteLine(Deposit(customerName[0], balance[0], deposit));
Console.WriteLine(Deposit(customerName[1], balance[1], deposit1));
Console.WriteLine(Deposit(customerName[2], balance[2], deposit2));

string Deposit(string customerName, double balance, double deposit)
{
    double newBalance = balance + deposit;
    return $"{customerName} deposited ${deposit:F2} and the new balance is ${newBalance:F2}";
}

关键修正点说明

  1. 简化isEmpty方法:移除冗余变量,直接根据判断结果返回布尔值并输出对应提示,逻辑清晰无歧义。
  2. 调整调用方式:直接调用isEmpty(balanceX),避免用Console.WriteLine包裹,消除重复输出。
  3. 优化数组初始化:一步完成数组初始化,去掉无效的先声明长度再赋值的操作。
  4. 规范格式化输出:用字符串插值和F2格式符确保金额保留两位小数,输出更规整。
  5. 添加测试用例:在余额数组中加入0.00数据,便于验证方法正确性。

内容的提问来源于stack exchange,提问作者user19888755

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 10:02:24