代碼修正後邏輯:
for (k=1; (c=s[k]) != '\0'; k++) {
switch(c) {
case 'A': putchar('%'); continue; // 輸出% 跳過本輪後續、k++ 進入下輪
case 'B': ++k; break; // 額外跳過一個字符、break 跳出 switch
default: putchar('*'); // 無 break,穿透執行 case 'C'
case 'C': putchar('&'); continue; // 輸出& 跳過本輪後續
}
putchar('#'); // 只有 case 'B' 會執行到這裡
}
輸入 "ABCCDA"(索引 1 起)輸出序列可手動推演,關鍵理解 continue 直接進入 for 迭代下一輪,break 僅跳出 switch。