2016年11月27日 星期日

[筆記] 深入了解 switch-case

  之前在課堂的作業中第一次看到神奇的 switch-case 用法,藉著機會研究一番;剛好朋友也詢問了類似的問題,也查看更多資料,完全顛覆我以前對 switch-case 的理解。因此藉著這篇文章來記錄我所查到的知識,也順便掃掃灰塵((汗。

  最初學到的 switch-case 用途是「多重選擇」,也就是說用來取代一連串的 if-else statement 對於一個變數的連續判斷,如以下的例子:
if (value == 0)
    printf("Grade S\n");
else if (value == 1)
    printf("Grade A\n");
else if (value == 2)
    printf("Grade B\n");
else if (value == 3)
    printf("Grade C\n");
else
    printf("Grade D\n");
可以用 switch-case 取代成:
switch (value) {
    case 0:
        printf("Grade S\n");
        break;
    case 1:
        printf("Grade A\n");
        break;
    case 2:
        printf("Grade B\n");
        break;
    case 3:
        printf("Grade C\n");
        break;
    default:
        printf("Grade D\n");
        break;
}
基礎複習完了,大家可以回家了。

以下會討論到:
  • 在 switch-case 中宣告變數
    • switch 之下,case 之前
    • 在 case 中宣告變數
    • 不同 case 之間宣告相同名稱的變數
  • 不只是 if-else 的替代品 (對於一個變數的連續判斷)
而接下來的討論皆引用 C98/99 的規格書,需要一點 language syntax 的概念。
2016年8月21日 星期日

[DIY] OSU!mania 7K 控

  因為自己是個音 G 熱愛者,之前在網路上找到這篇 ─ [DIY 專區]自製 IIDX 控制器 Part1,於是也想要自幹一個 OSU!mania 7K 控 (差一個轉盤),還可以在家先練練識譜,不然之前四個人去打 IIDX 還比不過一個人((淚

設計


  基本上就是弄出一個箱子,然後挖幾個洞,放進按鈕,就完成了,你看很簡單吧

設計草稿:大致上把設細想法規劃一下,因為我是用 5mm 雕刻版配合雷切去製作箱體,所以垂直接點的地方採用凹凸卡榫,這樣就不用膠去固定。整個箱體只有控制板是用螺絲固定,為了方便拆卸修理。