2017-10-01 9 views
-4

基本的に私は200以上の馬力を入力すれば解釈するようにしようとしていますが、速度は "BMW" 10で動作しないとうまくいかず、理由が分かりません。馬力が200未満でブランドがBMWでない場合、それは5も増加するはずです。"if"文が私の指示に従わないC#

public string brand; 
    public string model; 
    public int hp; 
    public int speed = 25; 

    public int GetSpeed() 
    { 
     return this.speed; 

    } 

    public void SetSpeed(int newspeed) 
    { 
     if (speed < 0 || speed > 260) 
     { 
      Console.WriteLine("Please input a valid speed"); 
     } 
     else 
     { 
      this.speed = newspeed; 
     } 

    } 

    public string GetBrand() 
    { 
     return this.brand; 
    } 

    public void SetBrand(string newbrand) 
    { 
     this.brand = newbrand; 
    } 

    public string GetModel() 
    { 
     return this.model; 
    } 

    public void SetModel(string newmodel) 
    { 
     this.model = newmodel; 
    } 

    public int GetHp() 
    { 
     return this.hp; 
    } 

    public void SetHp(int newhp) 
    { 
     this.hp = newhp; 
    } 

    public int Accelerate(int step = 10, int new_speed = 5, int hpov = 15) 
    { 
     if (hp >= 200) 
     { 
      this.speed += hpov; 
      if (brand == "BMW") 
      { 
       this.speed += step; 
      } 
     } 
     else if (brand != "BMW") 
     { 
      this.speed += new_speed; 
     } 

     return this.speed; 
    } 

} 

}

答えて

0

Aight、 "ありがとう" の助けのために、このように見えるためにそれをリメイク - >

public int Accelerate(int step = 10, int new_speed = 5, int hpov = 15) 
    { 
     if (hp >= 200) 
     { 
      this.speed += hpov; 

      if (brand == "BMW") 
      { 
       this.speed += step; 
       return this.speed; 
      } 
      return this.speed; 


     } 
     else 
     { 
      this.speed += new_speed; 
      return this.speed; 

     } 

    } 

をし、それが必要として、それは完璧に動作します。

3

あなたはBMWじゃないの代わりに、常にそれを増やす場合にのみ、馬力が増加するためです。

public int Accelerate(int step = 10, int new_speed = 5, int hpov = 15) 
{ 
    if (hp >= 200) 
    { 
     this.speed += hpov; 
     if (brand == "BMW") 
     { 
      this.speed += step; 
     } 
    } 
    else if (brand != "BMW") 
    { 
     this.speed += new_speed; 
    } 

    return this.speed; 
} 
+0

私は開始速度を変えない無限ループを得ます - > http://prntscr.com/gs325g これは "BMW"を入力した場合にのみ発生します。 –

関連する問題