嵌套的意思
if語句的嵌套當if語句中的執行語句又是if語句時,則構成了if 語句嵌套的情形.其一般形式可表示如下:if(表達式) if語句; 或者為if(表達式) if語句; else if語句; 在嵌套內的if語句可能又是if-else型的,這將會出現多個if和多個else重疊的情況,這時要特別注意if和else的配對問題.例如:if(表達式1)if(表達式2)語句1;else語句2;其中的else究竟是與哪一個if配對呢?應該理解為:還是應理解為:if(表達式1) if(表達式1)if(表達式2) if(表達式2)語句1; 語句1;else else語句2; 語句2; 為了避免這種二義性,C語言規定,else 總是與它前面最近的if配對,因此對上述例子應按前一種情況理解.比較兩個數的大小關系.void main(){int a,b;printf("please input A,B:");scanf("%d%d",&a,&b);if(a!=b)if(a>b) printf("A>B\n");else printf("AB\n");else printf("A。
FOR語句嵌套
首先聲明一下:C語言不是很懂。本人在學Java。
根據嵌套for循環語句,最為流行的就是九九乘法表,代碼如下:
for(int i=1;i<10;i++)
{
for(int j=1;j<10;j++)
{
printf("%d%d",i*j);
}
printf(\n);//C語言的換行是這么寫的嗎?!
}
不知道printf語句寫對了沒?沒有環境編譯。
給您解釋下流程:
第一次for循環,i初始值為1,它進入里面內套的for循環,內套的for循環便開始了,結束后才會繼續回到外面的for語句。
那我們來看里面那個for循環:
j從1一直++到9后,程序會看到條件“j<10”時,循環就不再繼續了。就從內套的for循環中跳出來,下一句是換一行,然后“}”表示i=1的這次過程結束了,i++,返回進入下一個循環(即i=2),就這樣,i一直++到9后,因為i<10,所以for循環結束。程序結果就是:
1*1=1 1*2=2 1*3=3 1*4=4 1*5=5 1*6=6 1*7=7 1*8=8 1*9=9
2*1=2 2*2=4 2*3=6 2*4=8 2*5=10 2*6=12 2*7=14 2*8=16 2*9=18
3*1=3 3*2=6 3*3=9 3*4=12 3*5=15 3*6=18 3*7=21 3*8=24 3*9=27
4*1=4 4*2=8 4*3=12 4*4=16 4*5=20 4*6=24 4*7=28 4*8=32 4*9=36
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 5*6=30 5*7=35 5*8=40 5*9=45
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 6*7=42 6*8=48 6*9=54
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 7*8=56 7*9=63
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 8*9=72
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
上面是java語言編譯運行復制過來的:)
如何嵌套SELECT語句
嵌套SELECT語句也叫子查詢,形如: SELECT name FROM bbc WHERE region = (SELECT region FROM bbc WHERE name = 'Brazil') 一個 SELECT 語句的查詢結果可以作為另一個語句的輸入值。
上面的SQL語句作用為獲得和'Brazil'(巴西)同屬一個地區的所有國家。 子查詢不但可以出現在Where子句中,也可以出現在from子句中,作為一個臨時表使用,也可以出現在select list中,作為一個字段值來返回。
本節我們僅介紹的Where子句中的子查詢。 在Where子句中使用子查詢,有一個在實際使用中容易犯的錯在這里說明一下。
通常,就像上面的例子一樣,嵌套的語句總是和一個值進行比較。語句 (SELECT region FROM bbc WHERE name = 'Brazil') 應該僅返回一個地區,即 'Americas'。
但如果我們在表中再插入一條地區為歐洲,國家名稱為Brazil的記錄,那會發生什么情況? 這將會導致語句的運行時錯誤.因為這個SQL語句的語法是正確的,所以數據庫引擎就開始執行,但當執行到外部的語句時就出錯了。因為這時的外部語句就像好像是 SELECT name FROM bbc WHERE region = ('Americas', 'Europe'),這個語句當然報錯了。
那么有沒有辦法解決這個問題呢,當然有。有一些SQL查詢條件允許對列表值(即多個值)進行操作。
例如"IN" 操作符,可以測試某個值是否在一個列表中。 下面的語句就可以安全的執行而不出錯,不管表中有多少條包含Brazils的記錄 SELECT name FROM bbc WHERE region IN (SELECT region FROM bbc WHERE name = 'Brazil') OK, 讓我們再看看一些具體的實例, 一、給出人口多于Russia(俄國)的國家名稱 SELECT name FROM bbc WHERE population> (SELECT population FROM bbc WHERE name='Russia') 二、給出'India'(印度), 'Iran'(伊朗)所在地區的所有國家的所有信息 SELECT * FROM bbc WHERE region IN (SELECT region FROM bbc WHERE name IN ('India','Iran')) 三、給出人均GDP超過'United Kingdom'(英國)的歐洲國家. SELECT name FROM bbc WHERE region='Europe' AND gdp/population > (SELECT gdp/population FROM bbc WHERE name='United Kingdom')。