一:Java的基本结构
-
顺序结构
-
选择结构
-
循环结构
二:选择结构
1: if语句
if语句的基本格式:
-
if(判断条件){代码块}
-
if(判断条件){代码块} else {代码块}
-
if(判断条件){代码块} else if(判断条件){代码块} else {代码块}
-
if(判断条件){ if(判断条件){代码块} } else {代码块}
1.1 简单if语句
规范形式:
if (条件){
//代码块
}
示例1:Java成绩大于80分,奖励一颗糖
//简单的if语句 //成绩如果大于80 奖励一颗糖 int score = 10; if (score > 80){ System.out.println("奖励一颗糖"); }
示例2:Java的成绩大于98,而且HTML的成绩大于80,或者Java成绩等于100,HTML成绩大于70,奖励一杯奶茶
if( (score1 > 98 && score2 > 80) || (score1 = 100 && score2 > 70 ) ){ System.out.println("奖励一杯奶茶"); }
1.2 if —else 语句
规范形式:
if(判断条件){
//代码块1
}else{
//代码块2
}
示例1:是男生就永远18岁,否则永远16岁。
//如果是男生 就永远18岁 //如果是女生 就永远16岁 char c = '女生'; if( c == '男生'){// boolean 结果是true 执行if 否则执行else System.out.println("永远18岁"); }else{ System.out.println("永远16岁"); }
练习1:买彩票
如果体彩中了500万,我要买车,买房,去旅游。
如果没买中,那就继续买
public class Test01 { public static void main(String[] args) { //创建input对象 Scanner input = new Scanner(System.in); //键盘提示 System.out.println("中了500万吗?y/n"); //接收键盘输入 String answer = input.next(); //判断 if (answer.equals("y")){ //字符串的判断要使用equals方法 System.out.println("买车,买房,旅游"); }else { System.out.println("继续买"); } } }
注意:字符串的比较要用equals方法
练习2:输入4位数字的会员号的百位数字等于产生的随机数字即为幸运会员,提示恭喜中奖,否则没中奖。
public class Test02 { public static void main(String[] args) { //创建input对象 Scanner input = new Scanner(System.in); //提示键盘输入 System.out.println("请输入4位的会员号:"); //创建对象获取输入内容 int member = input.nextInt(); //提取百位数字 int bai = member/100%10; //创建随机数对象 Random r = new Random(); int ran = r.nextInt(10); //判断输入数与随机数 if (bai == ran){ System.out.println("恭喜中奖!"); }else { System.out.println("欢迎下次光临!"); } } }
注意:Math.random();可以生成0~1之间的一个数字,含0不含1
1.3多重if语句
标准形式:
if(条件1){
```java
//代码块1 ```
}else if{
//代码块2
}
....
else{
//代码块3
}
示例1:如果成绩大于90并且是男生就送个女朋友,成绩大于90并且是女生送个男朋友,否则活该单身
public class summarize { public static void main(String[] args) { char c = '女'; int score = 10; if(score>90 && c=='男'){ System.out.println("给送个女朋友"); }else if(score>90 && c=='女'){ System.out.println("给送个男朋友"); }else{ System.out.println("活该单身"); } } }
1.4 嵌套if语句
标准形式:
if(条件1){
if(条件2){
//代码块1
}else{
//代码块2
}
} else {
代码块3
}
示例:如果成绩大于90 如果是男生 送个女朋友, 如果是女生送个男朋友
public class Test { public static void main(String[] args) { // 如果成绩大于90 如果是男生 如果是女生 int score = 10; char c = '男'; if(score>90){ if(c=='男'){ System.out.println("给送个女朋友"); }else{ System.out.println("给送个男朋友"); } } } }
1.5 特殊的if语句(不推荐使用)
特殊形式:
注意:必须要求 if 或者 else 语句中只能有一条语句
if(条件)
//代码块(只有一条语句)
else
//代码块(只有一条语句)
2. switch语句
2.1 Switch语法规则
-
表达式expr的值必须是下述几种类型之一:
byte、short、int、char、enum(枚举);java7之后可以是String。
-
case子句中的值const 必须是常量值(或final的变量),case中的值不能是一个范围
-
所有case子句中的值应是不同的,否则会编译出错;
-
default子句是可选的(不是必须的)
-
break语句用来在执行完一个case分支后使程序跳出switch语句块;否则会继续执行下去(重点)
2.2 语法格式
switch(表达式expr){ case const1: statement1; break; case const2: statement2; break; … … case constN: statementN; break; default: statement_dafault; break; }
2.3 执行顺序
-
判断有没有满足 case 的情况,如果满足则执行,如果所有的 case 都不满足需求的时候 执行default中的内容
-
break 帮助跳出switch 语句, 如果执行过程中 没有遇到break 继续向下执行直到遇到break为止
2.4练习
1:简单实现Switch语句
public class Test { public static void main(String[] args) { int i = 1; switch(i){ case 1: System.out.println("Hello World!"); break; case 2: System.out.println("Hello World!2"); case 3: System.out.println("Hello World3"); break; default: System.out.println("Haaaa"); break; } } }
2:判断春夏秋冬
public class summarize { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); switch(str){ case "春天": System.out.println("春暖花开"); break; case "夏天": System.out.println("闷热"); break; case "秋天": System.out.println("秋高气爽"); break; case "冬天": System.out.println("滴水成冰"); break; default: System.out.println("火星的"); break; } } }
3:利用Switch实现计算器操作
public class summarize { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入第一个操作数:"); int a = sc.nextInt(); System.out.println("请输入运算符"); String str = sc.next(); System.out.println("请输入第二个操作数:"); int b = sc.nextInt(); switch(str){ case "+": System.out.println(a+"+"+b+"="+(a+b)); break; case "-": System.out.println(a+"-"+b+"="+(a-b)); break; case "*": System.out.println(a+""+b+"="+(a*b)); break; case "/": System.out.println(a+"/"+b+"="+(a/b)); break; case "%": System.out.println(a+"%"+b+"="+(a%b)); break; } } }
2.5 特殊用法:case 穿透 (重点)
case穿透:产生这种现象的原因是由于某个case语句中缺少或者漏写break语句所导致的结果
示例:打印输出指定月份的天数
public class summarize { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int month = sc.nextInt(); switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println("31天"); break; case 2: System.out.println("28天"); break; case 4: case 6: case 9: case 11: System.out.println("30天"); break; } System.out.println("Hello World!"); } }
3. 多重if与Switch的区别
-
都可以处理多分支情况
-
多重if适合做区间判断,switch适合等值判断
三:总结
1 程序三种基本结构
顺序结构 选择结构 循环结构
2 java 选择结构:
if 使用形式 if(条件){....} if(条件){...} else{...} if(条件){...} else if(条件){...}else if(条件){...} else{...} if(条件){ ... if(条件){...} } else{...} switch :等值判断 switch(变量表达式){ case 常量1: .... break; case 常量2: .... break; } 变量类型:byte short int char String 枚举 case 常量不能重复 default 可以省略 break 不要省略,如果省略会出现case穿透