C# If语句不能通过c

C# If语句不能通过c,c#,C#,我有下面的代码,如果credit>=7,Salary>=20000,则返回Qualify,否则返回NoQualify,但由于某些原因,它只返回Qualify=/ 任何帮助都将不胜感激 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace LabAssignFiveLoanThingy {

我有下面的代码,如果credit>=7,Salary>=20000,则返回Qualify,否则返回NoQualify,但由于某些原因,它只返回Qualify=/ 任何帮助都将不胜感激

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace LabAssignFiveLoanThingy   
{
    public class Loan
    {
        public static void Qualify()
        {
           Console.WriteLine("Sorry, at this time you do not meet the requirements for the loan.");
        }

        public static void NoQualify()
        {
            Console.WriteLine("Congratulations! You meet the requirements!");
        }

    }

    public class Program
    {
        static void Main(string[] args)
        {
            double Salary;
            int credit;
            Console.WriteLine("Hello, please enter your yearly salary:");
            Salary = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Awesome! please enter your credit rating, on a scale of 1-10:");
            credit = Convert.ToInt32(Console.ReadLine());
            Console.WriteLine("You've entered the following:");
            Console.WriteLine("Salary: {0}\nCredit Rating: {1}", Salary, credit);
            if (Salary < 20000 || credit < 7)      
                Loan.NoQualify();

            if (Salary >= 20000 && credit >= 7)
                Loan.Qualify();

            Console.ReadKey();
        }

    }
}
如果学分>=7,工资>=20000,否则返回不合格

似乎您需要一个if-else语句:

if (Salary >= 20000 && credit >= 7)
    Loan.Qualify();
else
    Loan.NoQualify();

您已交换了“合格”和“不合格”消息

这里的主要问题是Qualify和NoQualify方法中的消息被交换

他们需要这样:

public static void Qualify()
{
    Console.WriteLine("Congratulations! You meet the requirements!");
}

public static void NoQualify()
{
    Console.WriteLine("Sorry, at this time you do not meet the requirements for the loan.");
}
第二个问题是if控制流结构并不是您真正想要的。尽管它不会改变代码的结果,但它使代码在您试图使用if-else控制流结构完成的任务中更具可读性

您正在尝试设计一个系统,它不允许这两个if语句都被计算为true——那么为什么不让它永远不会发生呢

if (Salary >= 20000 && credit >= 7)
{
    Loan.Qualify();
}
else
{
    Loan.NoQualify();
}

不,同样的问题。当Salary=10,Credit=1时,它仍然返回Qualify@Austen不可能。在你的情况下,两者都是错误的。false&&false是false。@Austin我认为你的另一个错误是你用错误的方法写了错误的消息。如评论中所述,你已经交换了限定消息和非限定消息!另一方面,用大写字母开头类成员和局部变量名是一种糟糕的做法。大写通常用于类@文斯的评论就是这个问题的答案D@RyPope:这不是Java代码。@DerekW标准保持不变。
if (Salary >= 20000 && credit >= 7)
{
    Loan.Qualify();
}
else
{
    Loan.NoQualify();
}