1.順序結構:
2.判斷結構:
if(條件表達式)
{
執行語句;
}
執行語句是單條語句時,大括號可以省略。(for也一樣)
一個if整體就相當於一個單條語句。單條語句一般以分號或者大括號結束。
if(條件表達式)
{
執行語句1;
}
else
{
執行語句2;
}
執行語句1,2只會而且肯定會執行一個。
三元運算符?:就是if else 語句的簡寫格式:
當if else 運算後,有一個具體的結果時,可以簡寫成三元運算符。如三元運算符不能直接執行輸出語句。
if(條件表達式1)
{
執行語句1;
}
else if(條件表達式2)
{
執行語句2;
}
...
else
{
執行語句n;
}
3.選擇結構:
switch(表達式)
{
case 取值1:
執行語句;
break;
case 取值2:
執行語句;
break;
...
default:
執行語句;
break;
}
能選擇的數據只有4種:byte short int char等。
switch大括號裏的內容會全部加載到內存,所以內容沒有順序,但是程序會先執行第一個case,然後依次讀,最後讀default。
靠近尾部大括號的break可以省略。
如果正確case的break省略掉了,那麼後面的case裏的執行語句會繼續執行。可應用於單項多選擇條件。
default裏的break不代表程序結束,可以在開頭或者中間,因爲內容沒有順序。
開發的時候,if和switch的使用場景:
if:
1.對具體的值進行判斷
2.對區間判斷
3.對運算結果是boolean類型的表達式進行判斷
switch:
1.對具體的值進行判斷(值的個數通常是固定的)
對於幾個固定的值判斷,建議使用switch語句,因爲switch語句會將具體的答案都加載進內存,效率相對高一些。但是不常用,因爲switch功能性差,書寫麻煩。
4.循環結構:while, do while, for
1.
while(條件表達式)
{
執行語句;
}
ctrl + c 結束控制檯的運行
注意控制兩點:循環條件,循環次數。
2.
do
{
執行語句;
} while(條件表達式);
開發用的較少
3.
for(初始化表達式;循環條件表達式;**循環後** 的操作表達式)
{
執行語句;
}
多個表達式用逗號隔開。
循環條件必須是boolean值。
例子:
int x = 1;
for(System.out.println("a"); x < 3; System.out.println("b"))
{
System.out.println("c");
x++;
} //acbcb
for 和 while 的區別:
1.for和while可以互換。
2.如果需要通過變量來對循環進行控制,該變量只作爲循環增量存在時,小區別就出來了:
for循環初始化的變量在循環結束後會消失,不能再次使用(節省內存空間)。
如果循環變量還需要繼續使用,優先使用while。
無限循環應用:能有讓循環適當的等待(不知道循環多少次,阻塞式方法),不定義變量控制次數。
while(true) { }
for( ;(不寫默認就是true) ; ) { }
常用的:if while for
循環結構使用場景:
1.當對某些代碼執行很多次時,使用循環結構完成。
2.當對一個條件進行一次判斷的時候,可以使用if語句。
3.當對一個條件進行多次判斷的時候,可以使用while語句。
注意:
1.在使用循環時,要明確哪些是需要參與循環的語句。
2.循環通常情況下,需要定義條件,和控制循環次數。
5.循環嵌套:
/*大圈套小圈思想:
一種重複的情況,這種重複情況中的每一次又對應另外一種情況多次。
*/
for(int i = 0; i < 4; i++) //外循環控制的是行數
{
for(int j = 0; j < 4; j++) //內循環控制的是個數,只要保證區間域等於個數就行。
{
System.out.print("*");
}
System.out.println();
}
6.轉義符:
\n : 換行
\t:製表符
\b:退格
\r:返回行首
在Linux下的換行:\n
\r 使光標移動到本行行首,
\n 使光標移動到下一行行首
在windows下的換行:\r\n
\r\n 使光標移動到本行行首,然後移動到下一行行首
7.其他流程控制語句:
break:跳出當先循環,用於選擇結構(switch),循環結構
continue:結束本次循環,繼續下次循環,用於循環結構
break,continue單獨存在時,下面不要定義其他語句,會報錯。
可以用if控制break何時跳出:
if(x>1)
break;
如果出現了循環嵌套,break/continue想要跳出或者繼續指定的循環,可以通過標號來完成:
xiaoqiao: for()
{
wangcai: for()
{
break xiaoqiao;
//continue wangcai:
}
}