java语言提供结构_java学习之语句结构
在java語言當中存在4中語句結構,分別是:
1、順序結構
2、判斷結構
3、選擇結構
4、循環結構
一、順序結構:
所謂的順序結構,也就是當不指定其他三種語句結構的情況下,語句是從上往下依次執行的,只有碰到其他三種語句結構的時候,才會做相應判斷、選擇、循環。順序結構是基礎,是默認的執行順序。
在順序結構當中有一種比較特殊的形式就是:
int a = 9;
{
int x = 10;
System.out.println("Hello World!");
}
System.out.println("x == "+x);//這個時候打印x是打印不出來的
這種語句結構在java語言當中叫做局部代碼塊。局部代碼塊的特點就是在其中聲明的變量,在其所屬的大括號結束之后,就會被內存釋放。當我們需要一個變量僅在我們用完之后立即釋放的時候,我們可以選擇用這種結構表達式。一般用于節約內存的使用,國外的大多數程序開發者都比較注重這一點。
二、判斷結構:
判斷結構當中是以if為基礎的,if有三種具體形式:
1、單if結構,表達方式:
if(條件表達式,必須返回true 或者 是false){
需要執行的語句
}
if之后的大括號,是表示該if語句控制的語句范圍。當if之后有且僅有一條語句時,這個時候大括號是可以省略的。
比如:
int a = 10;
if(a>1)
System.out.println("A 大于 1");
//當if后緊跟著一條語句時這個時候 大括號"{ }"是可以省略掉的。
這里的單if語句的意思就是說,當滿足判斷條件的時候,if控制體內的語句將被執行,否則被程序忽略不執行。一種判斷,一種結果。
2、if....else....表達方式:
if(條件表達式,同樣必須返回true或者是false)
{
需要執行的語句1;
}else{
需要執行的語句2;
}
這種if表現形式的語句是說,當判斷條件滿足的時候,執行語句1,當條件不滿足的時候將執行語句2;此時表現的是一個判斷,一個結果。但是無論怎樣,都有且只有一條語句會被執行。
3、if...else if... ... else ...表達方式:
if(判斷表達式1){
語句1;
}else if(判斷表達式2){
語句二;
}else if(判斷表達式3){
語句三;
}else if(判斷表示式4){
....
}else{
語句其他;
}
這種if的表現形式是說,當判斷表達式1對的時候,執行語句1,當判斷表達式2對的時候,執行語句2....當都不滿足時執行最后一個else內的語句其他;即:多種判斷,一種結果。
三、選擇結構:
在java選擇結構中只有一個switch選擇結構,他的作用主要用于:當一個變量有多種值的時候,提供給我們一個選擇執行的語句,進行操作。代碼示例:int a;
class SwichDemo {
public static void main(String[] args) {
int a = 1;
switch(a){
case 1:
System.out.println("A's value is :" + a);
break;
case 2:
System.out.println("A's value is :" + a);
break;
default:
System.out.println("No match value");
}
}
}
這里需要注意的一點就是break語句,break語句的作用是當條件滿足的時候,執行完相對應的語句之后,退出switch語句。假如此時不用break退出的話,那么程序會在執行完對應的語句之后繼續把其他的語句打印一遍,直到遇到break跳出switch語句。讓我們修改一下 上述的例子看下 :
class SwichDemo{
public static void main(String[] args) {
int a = 1;
switch(a){
case 1:
System.out.println("A's value is :" + a);
//break;
case 2:
System.out.println("A's value is :" + 2);
//break;
case 3:
System.out.println("A's value is :" + 3);
break;
default:
System.out.println("No match value");
}
}
}
那么此時程序將會輸出:
,直到遇到break語句之后才會退出swtich,否則一直向下執行,直至遇到“}”switch大括號,控制范圍表示符為止。
這里需要注意的一點是 case 語句之后只能跟int,short,byte,char類型的常量,在java后續更新版本當中,有的支持String.
小結之if 和 switch的區別:
1、結構的書寫格式不一樣。
2、當處理單一變量,多種選擇的時候,這兩者是都可以的,都能夠完滿的完成任務。但是,swicth此時會比較清晰的呈現,待判斷的變量,還有帶選擇的選項之間的關系,但是也有一個弱點就是,書寫起來要非常謹慎,因為switch書寫起來要比if復雜并且容易出錯。
3、switch要比if有局限性。用switch能完成的if都可以完成,用if能完成的switch不一定可以。
(待續)
四、循環結構:
循環結構,是為了方便我們重復處理大量語句而存在的。
循環語句有三種:while循環、do...while循環、for循環:
while循環:while循環的特點是,先判斷條件真假,如果為假,那么不執行循環體當中的語句;如果為真,就執行循環體內的語句。while循環可以執行,也可以一次不執行。
代碼示例:
int a = 10;
while(a>8)//概括號內必須返回boolen值
{
System.out.println("a is "+a);
a--;//一般情況下需要做條件判斷的調整,讓循環停止下來。否則即為死循環。
}
do...while循環:
do...while循環的特點是,先執行一次,然后判斷條件是否滿足,如果滿足,繼續執行,如果不滿足則退出循環。但是無論如何,循環體內的語句,至少執行一次。
代碼示例:
int a = 10;
do{
System.out.println("Do while 循環");
}while(a>11);
小結:那么什么時候使用while循環,什么時候使用do...while循環呢?(暫時沒有搞明白....待續)。
for循環語句:
for(初始條件表達式;驗證條件表達式;循環次數控制表達式){}//循環體
代碼示例:
for(int i = 0 ; i<=10; i++){
System.out.println("Hello World!");
}
這里需要注意的是for循環的具體執行順序:
①首先初始化變量i,(注意這里初始化完i之后就不再用它了)
②然后判斷(i<=10)的真假,如果為真則
③System.out.println("Hello ?World!");
④執行完這個語句之后然后執行 i++;
⑤之后又開始計算 i<=10 的真假,如果為真
⑥System.out.println("Hello ?World!");
⑦然后執行i++;
⑧當再循環后 i<=10 為假之后,退出循環體
總體的步驟也就是:初始化條件表達式,這個只初始化一次。之后的工作就集中在判斷條件是否滿足,如果滿足就執行循環體,變量增加;只有當條件不滿足的時候,退出循環體。
for循環還有一個特點就是,內部初始化的變量屬于局部作用域,局部作用域的意思是當退出循環體的時候,釋放該變量所占的內存空間。在另一方面也就節省了內存的開銷。
五、循環結構的應用場景:
1、累加思想:
現在有一個需求就是計算1....100這個數的和;
代碼:
int i = 1;
int sum;
while(i<=100){
sum += i;
i++;
}
累加器的思想:(待續)
2、計數器思想:
現在有一個需求就是,打印出1...100中6的倍數,以及倍數的個數:
代碼:
int i = 1;
int count;
while(i<=100)
{
if(i%6 == 0){
System.out.println(i);
count++;
}
}
System.out.println("1到100當中共有6的倍數"+count+"個");
3、無限循環:
while無限循環:while(true);
for 無限循環:for(;;);(需要說明的一點就是,for 初始化表達式默認就是真);
(未完待續....)
FOR循環練習:(大圈套小圈的思想:當程序重復做一件事,然而這件重復要做的事內又存在需要重復做的事時,即這個時候就是大圈套小圈的思想。)
For 聯系一、
需求:在控制臺以"*"為單位打印如下字符:
******
******
******
******
思路:
1、首先要打印4個行,用for循環實現如下:
for(int i = 0; i<4;i++){
//這里用于打印四個行
}
2、在一個行內又得重復打印6個"*",用for循環實現代碼如下:
for(int x = 0; x<6;x++){
//這里用于打印6個"*";
}
3、綜合起來講的話,也就是每打印一個行,都要在這個行內重復打印"*"6次,綜合起來就是:
for(int i = 0; i<4;i++){
for(int x = 0; x < 6; x ++){
System.out.print("*");
}
}
4、在每行打印完之后,需要在行尾添加一個換行符:
for(int i = 0; i < 4; i++){
for(int x = 0; x < 6; x++){
System.out.print("*");
}
System.out.println();
}
完成。
For 聯系二:
需求:
在控制臺以"*"為單位打印如下字符圖形:
*******
******
*****
****
***
**
*
思路:
1、這個打印總共有七行,所以肯定要有一個:
for(int i = 0 ; i<7 ; i++)
{
}
2、打印七行之后,我們再來看下每行的特點。這里每行的特點就是,每行輸出的*是由7個逐個往下遞減,也就是第一個輸出是7個,第二個6個,第三個5個,逐個類推.....此時我們可以定義一個變量b來控制*號出現的次數。
int b = 7;
for(int x = 0; x
System.out.print("*");
}
b--;
3、因為這個需要循環執行,所以需要有一個循環體包裹著才可以。那我們把第二步的循環體,放到第一步當中,看一下執行結果:
for(int i = 0 ; i<7 ; i++)
{
int b = 7;
for(int x = 0; x
System.out.print("*");
}
b--;
}
結果如下:
,很不幸啊,結果是錯誤的!!!到底是什么地方錯了呢?讓我們仔細閱讀下程序代碼:
首先初始化變量,i=0; 之后比較i是否小于7,如果條件為真,那么執行循環體內的內容:
現在讓我們來修正下程序:代碼如下:
class ForDemo{
public static void main(String[] args) {
int b = 7;
for(int i = 0; i<7 ; i++){
for(int x = 0; x< b; x++){
System.out.print("*");
}
System.out.println();
b--;
}
}
}
當然這里還有一種寫法,代碼:
class ForDemo{
public static void main(String[] args) {
for(int i = 7; i>0 ; i--){
//int b = 7;
for(int x = 0; x< i; x++){
System.out.print("*");
}
System.out.println();
//b--;
}
}
}
溫馨提示:在你寫任何代碼,將要運行的時候,花10秒時間去認真讀一下,代碼的執行順序,看看他是否真的像你預想的那樣執行的。實在不確定再去運行他.....
總結
以上是生活随笔為你收集整理的java语言提供结构_java学习之语句结构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql to double_MySQ
- 下一篇: mysql.data webconfig