求助:修复C#控制台输出不符问题(Program.cs与Car类作业)
搞定你的C#作业速度输出问题
嘿,看你的输出和预期差了一截,咱们来捋捋怎么调整:
首先,核心差异很明确:你的福特Focus当前速度是20,要到28(差8);雪佛兰Cruze是0,要到18(差18)。大概率是你没给这俩车调用加速相关的方法,或者加速的逻辑没写对。
给你几个具体的排查和修改方向:
- 先检查你的
Car类:有没有写修改速度的方法?比如无参的Accelerate()(固定每次加8),或者带参数的Accelerate(int addSpeed)(自定义增量)?如果是前者,Focus只要调用1次;如果是后者,给Cruze传18当参数就行。 - 再看
Program.cs里的代码:是不是创建完Car实例就直接输出了?得在输出前调用加速方法才行!举个实际的代码例子:// 先创建两个车的实例 Car car1 = new Car(2010, "Ford", "Focus", 20); Car car2 = new Car(2018, "Chevy", "Cruze", 0); // 关键步骤:调用加速方法调整速度 car1.Accelerate(8); // 如果是带参数的方法,给Focus加8 car2.Accelerate(18); // 给Cruze加18 // 然后再执行输出 Console.WriteLine($"{car1.Year} {car1.Make} {car1.Model} is going {car1.Speed} MPH."); Console.WriteLine($"{car2.Year} {car2.Make} {car2.Model} is going {car2.Speed} MPH."); - 另外要注意:如果你的
Car类里Speed属性是private set(也就是封装起来不让直接修改),那你必须用类里定义的方法来调整速度,不能直接写car1.Speed +=8这种代码。
要是你的Car类还没写加速方法,补上类似这样的代码就行:
public class Car { // 你的其他属性:Year、Make、Model等 public int Speed { get; private set; } // 构造函数(这里省略你已经写好的部分) public Car(int year, string make, string model, int initialSpeed) { Year = year; Make = make; Model = model; Speed = initialSpeed; } // 带参数的加速方法,灵活调整增量 public void Accelerate(int amount) { Speed += amount; } // 或者写个固定加8的无参方法,看作业要求选择 public void Accelerate() { Speed += 8; } }
这样调整完,控制台输出应该就和预期完全一致啦!
内容的提问来源于stack exchange,提问作者Z. Josh
相关产品推荐
相关产品推荐

