2 回答

TA貢獻1829條經驗 獲得超7個贊
你的這個函數有問題, 而不是while怎么判斷的問題
void strcat(char *a,char *b)
{
while(*a != '\0')
a++;
while(*b != '\0')
*a++=*b++;
*a = '\0'; //后面應該加上'\0',不然你的字符串怎么結束, 這里加了怎么while都沒有問題
}

TA貢獻1780條經驗 獲得超4個贊
while可以用作無窮循環,很多地方都用到無窮循環。一個無窮循環如下所示:
while(true)
{
循環內容;
...
}
無窮循環可以由自己循環中的某個條件式來結束。下面是一個循環內部終止的例子:
while(true) { 語句; if(條件式) break; // 跳離循環 ... }
當條件式成立時,會執行break離開while循環,這個break與switch中的作用是一樣的,都是要離開當時執行的程序塊時使用。
class
TestWhile
{
public static void
main(String[] args)
{
while(true)
{
System.out.println( "執行
");
//值為真用break跳出執行while之后的語句
if(true)
{
break;
}
System.out.println( "繼續執行 ");
}
}
}
//無窮循環固定格式為while(true),其中括號里的值固定為boolean型,并且要為真時,才會執行下面的語句.
class
TestWhile
{
public static
void main(String[] args)
{
boolean flag =
false;
while(flag)
//這時括號里的值為假,所以下面的語句都不會執行.如果改成while(!flag)就可以執行了.
{
System.out.println( "while為真時執行 ");
//值為真用break跳出執行while之后的語句
if(true)
{
break;
}
System.out.println( "繼續執行
");
}
}
}
- 2 回答
- 0 關注
- 99 瀏覽
添加回答
舉報