首页 > 解决方案 > 为什么 return true 或 false 会中断;不工作?

问题描述

我是 C# 的新手,有这段代码,不知道为什么会出现这些错误:

Main.cs(28,22): 错误 CS0031: 常量值true' cannot be converted to an int'
Main.cs(41,14): 错误 CS0031: 常量值false' cannot be converted to an int'

我只需要返回 true 或 false 并停止程序的执行,以防它为 true。

using System;
using System.Linq;
using System.IO;

class MainClass 
{
    public static int SumMultiplier(int[] arr) 
    {
        int sum = arr.Sum();
        int doubleValue = sum * 2;
        int totalElements = arr.Count(); 
        // Console.WriteLine("doble "+doubleValue);
        // Console.WriteLine(totalElements);
        // int j = totalElements;

        for (int i = 0; i < totalElements; i++)
        {
            // Console.WriteLine(arr[i]);
            if(i + 1 < totalElements)
            {
                // Console.WriteLine("sds"+arr[i]*arr[i+1]);
                for (int j = 0; j < totalElements; j++)
                {
                    // Console.WriteLine("numero iteracion "+i+" multiplica "+arr[i]+" por "+arr[j]);
                    int multRes = arr[j] * arr[i];

                    if(multRes > doubleValue)
                    {
                        return true;
                        break;
                    } 
                }
            }
        }
    
        // return condition;
        return false;
    }

    static void Main() 
    { 
        // keep this function call here
        Console.WriteLine(SumMultiplier(Console.ReadLine()));
    } 
}

标签: c#

解决方案


只需将SumMultiplier中的返回类型更改为 bool (布尔类型)

public static bool SumMultiplier(int[] arr) {
   
    int sum = arr.Sum();
    int doubleValue = sum*2;
    int totalElements = arr.Count(); 
    //Console.WriteLine("doble "+doubleValue);
    //Console.WriteLine(totalElements);
    //int j = totalElements;
    for (int i=0; i<totalElements;i++){
      
      //Console.WriteLine(arr[i]);
      if(i+1<totalElements){
        //Console.WriteLine("sds"+arr[i]*arr[i+1]);
          for (int j=0; j<totalElements;j++){
            
            //Console.WriteLine("numero iteracion "+i+" multiplica "+arr[i]+" por "+arr[j]);
            
            int multRes = arr[j]*arr[i];
            

            if(multRes>doubleValue){
              return true;
              break;
            } 

          }
      

      }

    }

    
    //return condition;
      return false;
  }


推荐阅读