(2)c++表示先取變量c當前的值,然後再將變量c加1,也就是c==66,也就是B的ASC碼值
(3)continue表示不再繼續往下執行~返回到循環重新下壹輪循環
(4)case 'B'後面沒有break。表示如果執行case 'B'後,還要執行case"C"後面的語句,遇到break才跳出switch
所以:執行是這樣遞:
1進入switch循環,c取值'A'以後,加1賦值為‘B’.進入case'A'.執行到break後,c等於'B',k==1.然後跳出switch,執行default後面的k++。此時k==2.然後判斷c<'G','B'<'G',則返回繼續循環.
2進入switch循環,c取值'B'以後,加1賦值為‘C’.進入case'B'.執行k--,此時k==1.然後繼續執行k+=2.此時k==3.遇到break跳出switch,執行default後面的k++。此時k==4.然後判斷c<'G','C'<'G',則返回繼續循環.
3進入switch循環,c取值'C'以後,加1賦值為‘D’.進入case'C'.執行到break後,c等於'D',k==6.然後跳出switch,執行default後面的k++。此時k==7.然後判斷c<'G','D'<'G',則返回繼續循環.
4進入switch循環,c取值'D'以後,加1賦值為‘E’.進入case'D'.k=k%2表示k除以2以後的余數賦值給k,執行到continue後,c等於'E',k==1.然後跳出switch,執行循環判斷語句while判斷c<'G','E'<'G',則返回繼續循環.
5進入switch循環,c取值'E'以後,加1賦值為‘F’.進入case'E'.執行到break後,c等於'F',k==10.然後跳出switch,執行default後面的k++。此時k==11.然後判斷c<'G','F'<'G',則返回繼續循環.
6進入switch循環,c取值'F'以後,加1賦值為‘G’.進入default.執行k=k/3後,c等於'G',k==3.然後跳出switch,執行default後面的k++。此時k==4.然後判斷c<'G','G'=='G',所以整個循環結束.繼續往下,執行printf.所以k==4.
補充:switch不是循環~do+while組成1個循環.
k++包含在do+while循環裏的.
簡化壹下妳這個代碼就是這樣
do{
//switch();
//K++;
}while();
循環裏有switch和k++倆部分~do和whlie是1個循環整體.
break是跳出switch.
continue是結束最靠近的壹個循環體的當前循環,繼續下壹輪循環~k++是本次循環體的壹部分~所以遇到continue後,將不再執行
而do和while是1個整體~所以whlie還得執行~
用下面的代碼就好理解了,作用差不多.在switch中遇到continue後直接返回到for那再執行
for(int i='A';i<'G';i++)
{
//switch();
//K++;
}