1、順序結構在上一講裡面已經講到瞭,這裡就不多說瞭。
2、分支結構(或者叫做選擇結構):
主要有兩種:一種是if條件語句;另外一種是switch分支語句;
對於if條件語句呢一般也是有三種基本的形式:
第一種:
if(佈爾表達式)
{
//執行代碼塊;
}
第二種:
if(佈爾表達式)
{
//執行代碼塊;
}
else
{
//執行代碼塊;
}
第三種:
if(佈爾表達式)
{
//執行代碼塊;
}
else if(佈爾表達式)
{
//執行代碼塊;
}
舉個實例吧:
int age = 30;
if(age > 20)
{
System.out.println("年齡已經在20歲以上瞭!");
System.out.println("這個年齡段的人要學會承擔責任瞭!");
}
還有要註意的是:很多人都喜歡將if或者是else之後的{}不寫出來,其實這樣是很不好的習慣。
關於邏輯判斷的錯誤:
先看一下實例,在做詳細的解釋:
int age = 45;
if(age > 20)
{
System.out.println("you're a young man!");
}
else if(age > 40)
{
System.out.println("you're a middle man!");
}
else if(age > 60)
{
System.out.println("you're an old man!");
}
//當這樣子做分支結構的時候其實是有問題的,問題在哪呢?age>20這個范圍顯然是包含瞭後面的elseif裡面的兩個選擇表達式的,所以當程序執行到if的時候就不會再往下執行瞭,後面那兩個選擇條件就失去瞭意義瞭。
這就相當於說如果你是個人,那就輸出你是個人;後面的else if裡面的是男人或者是女人,就沒有意義瞭,因為人的范圍就包含瞭男人或者是女人。
所以對於這一段代碼的執行,個人覺得隻需要註意別把范圍大的放在前面瞭再去組織分支結構,一般情況下都是沒有問題的。
對於上面那段錯誤代碼隻需要將20和60換個個,就可以瞭,當然你還要做的是將輸出的內容做一下改變嘛,是吧!看看改正之後的例子吧:
int age = 45;
if(age > 60)
{
System.out.println("you're an old man!");
}
else if(age > 40)
{
System.out.println("you're a middle man!");
}
else if(age > 20)
{
System.out.println("you're a young man!");
}
當然對於age>40;還可以這樣表述:將之前if裡面的佈爾表達式取反:
age>40&&!(age>60);這樣一種表達也是可行的。
同樣的,下面的age>20也是可以類似的表述:
age>20&&!(age>40);
if else的語句就先講到這裡,下面再看看另外的一種分支結構:switch結構:
語法格式如下:
switch(expression)
{
case condition1:
{
statement(s)
break;
}
………//跟上面的類似的case;
舉個實際的例子:
char score='c';
switch (score)
{
case 'a' :
System.out.println("優秀");
break;
case 'b' :
System.out.println("良好");
break;
case 'c' :
System.out.println("中");
break;
case 'd' :
System.out.println("及格");
break;
case 'e' :
System.out.println("不及格");
break;
default:
System.out.println("乘積輸入錯誤!");
}
這裡需要註意的是switch裡面的控制表達式的類型隻能是byte、short、char和int,不能是字符串,所以我們在之前定義這個控制表達式或者是變量的時候要註意隻能定義成這幾種類型之一。
總結;使用switch語句的時候,有兩個地方要註意:其一就是上面已經說過瞭的控制表達式的類型,其二就是break,可以根據你的實際需要選擇是否需要break。
作者“黎黎原上草”