一、if結構
1.1 基本if結構
語法:
if(條件){
// 代碼塊
}
注意:條件成立時會執行代碼塊,條件不成立時什么都不干,
public static void main(String[] args) {
// 基本分支結構
// if(條件)
int age = 21;//定義年紀
if(age > 22) {
// 當條件成立時執行
System.out.println("可以結婚了");
}
}
1.2 if-else結構
語法:
if(條件){
// 條件成立時執行的代碼塊
}else{
// 條件不成立時執行的代碼塊
}
注意:分支結構兩個分支只會執行其中一個,條件是決定因素,
public static void main(String[] args) {
// if-else結構
int num = 2;
if(num > 1) {
// 成立后執行的代碼塊
System.out.println("一起開黑");
}else {
// 不成立后執行的代碼塊
System.out.println("在家睡覺");
}
}
1.3多重if結構
語法:
if(條件1){
// 條件1成立時執行的代碼塊
}else if(條件2){
// 條件2成立時執行的代碼塊
}else if(條件3){
// 條件3成立時執行的代碼塊
}else{ // 可以沒有else
// 條件都不成立時執行的代碼塊
}
注意:條件可能滿足多個,但是代碼是自上而下執行,滿足了一個條件,則不會去判斷下面的其他條件,
public static void main(String[] args) {
// if-else if-else結構
String weather = "晴";
if(weather.equals("雨")) {
System.out.println("出門帶傘");
}else if(weather.equals("雪")) {
System.out.println("出門帶外套");
}else if(weather.equals("晴")) {
System.out.println("可以室外活動");
}else {
System.out.println("在家睡覺");
}
?
int position = 5;
if(position > 1) {
System.out.println("我是上單,出門多蘭盾");
}else if(position > 2) {
System.out.println("我是中單,出門多蘭戒");
}else if(position > 3) {
System.out.println("我是輔助,出門圣物之盾");
}else if(position > 4) {
System.out.println("我是ADC,出門多蘭劍");
}else {
System.out.println("我是打野,出門打野刀");
}
?
// 條件不可能滿足多個,所以判斷的順序可以交換
int score = 82;
if(score == 100) {
System.out.println("完美");
}else 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 {
System.out.println("不及格");
}
?
// 條件可能滿足多個,需要注意順序
int score1 = 82;
if(score1 == 100) {
System.out.println("完美");
}else if(score1 >= 90) {
System.out.println("優秀");
}else if(score1 >= 80) {
System.out.println("良好");
}else if(score1 >= 70) {
System.out.println("一般");
}else if(score1 >= 60) {
System.out.println("及格");
}else {
System.out.println("不及格");
}
}
1.4 嵌套if結構
先判斷外層的條件,如果成立則執行外層條件的陳述句塊,如果里面又包含分支,再判斷相應的條件去執行對應的分支,
public static void main(String[] args) {
//
String zhongzu = "人族";
String zhiye = "法師";
if(zhongzu.equals("精靈")) {
System.out.println("你選擇了精靈族");
if(zhiye.equals("法師")) {
System.out.println("你選擇了精靈法師");
}else {
System.out.println("你選擇了精靈射手");
}
}else {
System.out.println("你選擇了人族");
if(zhiye.equals("狂戰士")) {
System.out.println("你選擇了人族狂戰士");
}else {
System.out.println("你選擇了人族騎士");
}
}
}
二、switch結構
類似于if-elseif-else結構,
語法:
switch(變數或運算式){
case 值1:
代碼塊
break;
case 值2:
代碼塊
break;
case 值3:
代碼塊
break;
default:
break;
}
注意:
switch里的變數只能是byte\short\int\char\String(jdk7新加入的)
如果在case中代碼塊結束后,不寫break,會繼續往下執行,
小技巧: 可以利用沒有寫break時繼續往下執行的方式來處理一些需求,(例如:日期的處理)
// 定義三個變數,年份、月份和日期,輸出該日期是一年的第幾天(考慮閏年)
int month = 3;
int day = 20;
int year = 2000;
int days = 0;
switch(month) {
case 12:
days = days + 30; // 加上11月份的
case 11:
days = days + 31; // 加上10月份的
case 10:
days = days + 30; // 加上9月份的
case 9:
days = days + 31; // 加上8月日期
case 8:
days = days + 31; // 加上7月份的
case 7:
days = days + 30; // 加上6月份的
case 6:
days = days + 31; // 加上5月份的
case 5:
days = days + 30; // 加上4月日期
case 4:
days = days + 31; // 加上3月份的
case 3:
if(year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {
days = days + 29; // 加上閏年2月份的
}else {
days = days + 28; // 加上平年2月份的
}
case 2:
days = days + 31; // 加上1月份的
case 1:
days = days + day; // 加上本月日期
}
System.out.println(year + "年" + month + "月" + day + "日是當年的第"+days+"天");
這個計算一年中第幾天需要大家思考一下為什么是這樣的,就是上一個月的天數過完了,才會挪到下一個月計算,沒過完的話就是case 1中的天數
String day = "星期一";
switch(day) {
case "星期一":
System.out.println("吃面");
break;
case "星期二":
System.out.println("吃飯");
break;
default:
System.out.println("喝湯");
break;
}
三、變數的作用域
變數的使用:
必須在有效的作用域范圍內才能使用
必須先賦值后使用,(不能有條件賦值)
變數的作用域:
從變數定義開始,到離該變數定義最近的一個{相對應的}結束,
注意:同一個作用域中不能定義兩個同名的變數,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/246546.html
標籤:java
