-
顺序结构
-
选择结构
-
循环结构
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穿透


