日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

t66y.buzz index.php,6.FizzBuzz

發布時間:2025/3/21 php 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 t66y.buzz index.php,6.FizzBuzz 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本系列文章為laracasts.com 的系列視頻教程——Code Katas in PHP 的學習筆記。若喜歡該系列視頻,可去該網站訂閱后下載該系列視頻,支持正版。

Kata 是一個簡短,可重復的編程挑戰,可以幫助我們進行快速地編程練習。

開發模型仍舊是 TDD(測試驅動開發),視頻中使用的是 phpspec 進行開發,筆記中使用了 Laravel 應用,因此代碼有不同。

本節說明

對應第 6 小節:FizzBuzz

本節內容

這一節我們的練習是 FizzBuzz 游戲。首先我們簡單了解下規則:寫一個程序按自然數的順序打印數字,但是在遇到 3 的倍數時用“fizz”替代數字,5 的倍數用“buzz”代替,既是 3 的倍數又是 5 的倍數打印“fizzbuzz”。我們來開始練習:

$ php artisan make:test FizzBuzzTest --unit

添加第一個測試:

namespace Tests\Unit;

use Tests\TestCase;

use App\FizzBuzz;

class FizzBuzzTest extends TestCase

{

public function setUp()

{

parent::setUp();

$this->fizzbuzz = new FizzBuzz();

}

/** @test */

public function it_translate_1_for_fizzbuzz()

{

$this->assertEquals($this->fizzbuzz->execute(1),1);

}

}

運行測試:

我們來讓測試通過:

app\FizzBuzz.php

namespace App;

class FizzBuzz

{

public function execute($number)

{

return $number;

}

}

再次測試:

向前推進:

.

.

/** @test */

public function it_translate_2_for_fizzbuzz()

{

$this->assertEquals($this->fizzbuzz->execute(2),2);

}

}

運行測試:

測試通過,所以我們繼續向前推進:

.

.

/** @test */

public function it_translate_3_for_fizzbuzz()

{

$this->assertEquals($this->fizzbuzz->execute(3),'fizz');

}

}

我們來讓測試通過:

app\FizzBuzz.php

namespace App;

class FizzBuzz

{

public function execute($number)

{

if($number % 3 == 0) return 'fizz';

return $number;

}

}

再次測試:

繼續向前推進:

.

.

/** @test */

public function it_translate_5_for_fizzbuzz()

{

$this->assertEquals($this->fizzbuzz->execute(5),'buzz');

}

}

運行測試:

我們來讓測試通過:

namespace App;

class FizzBuzz

{

public function execute($number)

{

if($number % 5 == 0) return 'buzz';

if($number % 3 == 0) return 'fizz';

return $number;

}

}

運行測試:

向前推進:

.

.

/** @test */

public function it_translate_6_for_fizzbuzz()

{

$this->assertEquals($this->fizzbuzz->execute(6),'fizz');

}

}

運行測試:

測試通過,所以我們繼續推進:

.

.

/** @test */

public function it_translate_10_for_fizzbuzz()

{

$this->assertEquals($this->fizzbuzz->execute(10),'buzz');

}

}

運行測試:

繼續推進:

.

.

/** @test */

public function it_translate_15_for_fizzbuzz()

{

$this->assertEquals($this->fizzbuzz->execute(15),'fizzbuzz');

}

}

運行測試:

我們來讓測試通過:

namespace App;

class FizzBuzz

{

public function execute($number)

{

if($number % 15 == 0) return 'fizzbuzz';

if($number % 5 == 0) return 'buzz';

if($number % 3 == 0) return 'fizz';

return $number;

}

}

運行測試:

現在我們的三條規則已經測試完畢,為了保險起見,我們可以多做幾個隨機測試:

.

.

/** @test */

public function it_translate_123_for_fizzbuzz()

{

$this->assertEquals($this->fizzbuzz->execute(123),'fizz');

}

/** @test */

public function it_translate_150_for_fizzbuzz()

{

$this->assertEquals($this->fizzbuzz->execute(150),'fizzbuzz');

}

}

運行測試:

現在我們只用添加一個方法,將轉換后的結果組合起來即可:

.

.

/** @test */

public function it_translate_a_sequence_of_number_for_fizzbuzz()

{

$this->assertEquals(

$this->fizzbuzz->executeUpTo(10),

[1,2,'fizz',4,'buzz','fizz',7,8,'fizz','buzz']

);

}

}

代碼實現很簡單:

.

.

public function executeUpTo($number)

{

$output = [];

foreach (range(1,$number) as $i)

{

$output[] = $this->execute($i);

}

return $output;

}

}

運行測試:

總結

以上是生活随笔為你收集整理的t66y.buzz index.php,6.FizzBuzz的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。