1. 程式人生 > 其它 >for語句和迴圈巢狀

for語句和迴圈巢狀

count++(count=count+1)

#include<stdio.h>

int main()
{
int count;
for (count=0;count<10;count++)
{
printf("銀行姐姐\n");
}
return 0;
}

結果

銀行姐姐
銀行姐姐
銀行姐姐
銀行姐姐
銀行姐姐
銀行姐姐
銀行姐姐
銀行姐姐
銀行姐姐
銀行姐姐

練習:寫一個程式:判斷一個數是否為素數。

備註:是或者不是我們就用布林型別(_Bool)

#include<stdio.h>

int main()
{
int i,num;
_Bool flag=1;
printf("請輸入一個整數:");
scanf("%d",&num);
for (i=2;i<num/2;i++)
{
if(num%i==0)
{
flag=0;
}
}
if(flag)
{
printf("%d是一個素數!\n",num);
}
else
{
printf("%d不是一個素數!\n",num);
}
return 0;
}

備註:

整個過程迴圈下來,我們再來判斷這個flag到底是什麼值,如果flag為真,也就是非零,他就是素數,因為它初始化為1,如果沒有被設定為0,整個迴圈執行下來了,那麼它就沒有能夠被整除,那flag還是1,那他就是素數

靈活的for語句

表示式1,2,3可以按照需要省略(但分號不能省)

表示式13可以是一個簡單的表示式,也可以是逗號表示式(即用逗號分隔多個表示式)

#include<stdio.h>

int main()
{
int i,j;
for(i=0,j=10;i<j;i++,j--)
{
printf("%d\n",i);
}
return 0;
}

結果

0
1
2
3
4

c99新標準:允許for語句的表示式1中定義變數

#include<stdio.h>

int main()
{

for(int i=0,j=10;i<j;i++,j--)
{
printf("%d\n",i);
}
return 0;
}

迴圈巢狀

語句會被執行多少次,順序:從內到外

#include<stdio.h>

int main()
{
int i,j;
for( i=0;i<3;i++)
{
for(j=0;j<3;j++)
{
printf("i=%d,j=%d\n",i,j);
}
}
return 0;
}

結果·

i=0,j=0
i=0,j=1
i=0,j=2
i=1,j=0
i=1,j=1
i=1,j=2
i=2,j=0
i=2,j=1
i=2,j=2

相當於j內部執行一圈,外部i才執行一層,內層迴圈決定列,外層迴圈決定行

練習:列印99乘法表(記得要換行)

#include<stdio.h>

int main()
{
int i,j;
for( i=1;i<=9;i++)
{
for(j=1;j<=i;j++)
{
printf("%d*%d=%-2d ",i,j,i*j);
}
putchar('\n');
}
return 0;
}

結果

1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81