C# If语句不能通过c
我有下面的代码,如果credit>=7,Salary>=20000,则返回Qualify,否则返回NoQualify,但由于某些原因,它只返回Qualify=/ 任何帮助都将不胜感激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 {
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();
}