1. If語句格式1:適用於單個判斷
If(關係表達式){
語句體
}
執行流程:
首先判斷關係表達式的結果是true還是false
如果是true就執行語句體
如果是false就不執行語句體
int x=10;
if(x==10) {
System.out.println("x=10");
}
if(x==20) {
System.out.println("x=20");
}
System.out.println("over");
}
小結:
(1)關係表達式無論複雜還是簡單,結果必須是Boolean類型;
(2)If語句控制的語句體如果是一條語句,大括號可以省略,多條不能省略。
一般來說,有左大括號就沒有分號,有分號就沒有左大括號;
int x=10;
if(x!=10);//這裏其實是有語句體,只不過是空語句體
//代碼塊
{
System.out.println("x=10");
System.out.println("over");
}
2.If語句格式2:適用於兩個判斷
If(關係表達式){
語句體1;
}else{
語句體2;
}
執行流程:
首先判斷關係表達式的結果是true還是false;
如果是true就執行語句體1;
如果是false就不執行語句體2;
else後面沒有表達式,只有if後面有。
舉例如下:
public static void main(String[] args) {
int x=30;
int y =20;
if(x==y)
{
System.out.println("x=y");
}else
System.out.println("over");
舉例1.:獲取兩個數中較大值
方法一:
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入第一個數據");
int a=sc.nextInt();
System.out.println("請輸入第二個數據");
int b=sc.nextInt();
if(a>b)
{
System.out.println("a");
}else
System.out.println("b");
}
方法二:
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入第一個數據");
int a=sc.nextInt();
System.out.println("請輸入第二個數據");
int b=sc.nextInt();
int max;
if(a>b)
{
max=a;
}else{//else後面沒有表達式,只有if後面有
max=b;
}
System.out.println("max:"+max);
}
方法三
int a=13;
int b=43;
int max=(a>b)?a:b;
System.out.println("max"+max);
小結:
三元運算實現的都可以用if實現,反之不成立;
爲什麼呢,因爲三元運算符是一個運算符,運算符操作完畢就應該有一個結果,而不是一個輸出。
舉例2.:判斷一個是奇數還是偶數
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入你要判斷的數據");
int a=sc.nextInt();
if(a%2==0)
{
System.out.println(a+"是偶數");
}else
{
System.out.println(a+"是奇數");
}
}
3.If語句第三種格式:適用於多個判斷
If(關係表達式1){
語句體1;
}else(關係表達式2){
語句體2;
}
……
Else{
語句體n+1;
}
執行流程:
首先判斷關係表達式的結果是true還是false
如果是true就執行語句體1
如果是false就繼續判斷關係表達式2,看其結果是true還是false
如果是true就執行語句體2
如果是false就繼續判斷關係表達式……,看其結果是true還是false
……
如果沒有任何關係表達式爲true,就執行語句體n+1。
舉例3.:鍵盤錄入一個成績,判斷成績的等級
90-100 優秀
80=90 好
70-80 良
60-70 及格
50-60 不及格
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入你的考試成績");
int score=sc.nextInt();
if(score>=90&&score<=100){
System.out.println("優秀");
}else if(score>=80&&score<90){
System.out.println("好");
}
else if(score>=70&&score<80){
System.out.println("良");
}
else if(score>=60&&score<70){
System.out.println("及格");
}
else if(score>=0&&score<60){
System.out.println("不及格");
}
else {
System.out.println("您輸入的數據有誤,請重新輸入");
}
}
舉例4.:鍵盤錄入x的值,計算出y的值並輸出。
x>=3 y=2x+1
-1<x<3 y=2x
x<=-1,y=2x-1
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入x");
int x=sc.nextInt();
int y;
if(x>=3) {
y=2*x+1;
}
else if(-1<=x&&x<3) {
y=2*x;
}
else {
y=2*x-1;
}
System.out.println("y="+y);
}
舉例5.:鍵盤錄入月份的值,並輸出對應季節。
春 3 4 5
夏6 7 8
秋9,10,11
冬12,1,2
方法一:
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入月份");
int month=sc.nextInt();
if(month<1||month>12) {
System.out.println("你輸入的月份有誤");
}
else if(month==12||month==1||month==2) {
System.out.println("冬季");
}
else if(month==3||month==4||month==5) {
System.out.println("春季");
}
else if(month==6||month==7||month==8) {
System.out.println("夏季");
}
else if(month==9||month==10||month==11) {
System.out.println("秋季");
}
方法二:
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入月份");
int month=sc.nextInt();
if(month<1||month>12) {
System.out.println("你輸入的月份有誤");
}
else if(month>=3&&month<=5) {
System.out.println("春季");
}
else if(month>=6&&month<=8) {
System.out.println("夏季");
}
else if(month>=9&&month<=11) {
System.out.println("秋季");
}
else {
System.out.println("冬季");
}
}
小結:
If語句使用場景:
(1)針對表達式是布爾類型;
(2)針對一個範圍的判斷。
舉例6.:獲取三個數最大值。
主要說明 if 是可以嵌套使用。
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("請輸入第一個數據");
int a=sc.nextInt();
System.out.println("請輸入第二個數據");
int b=sc.nextInt();
System.out.println("請輸入第三個數據");
int c=sc.nextInt();
int max;
if(a>b) {
if(a>c)
max=a;
}else {
max=c;
if(b>c) {
max=b;
}else {
max=c;
}
System.out.println(max);
}
}
}