第4单元 选择结构
1.1 if...else
\1. if(条件表达式){
代码结构
}
\2. if(条件表达式){
满足条件执行的代码结构
}else{
不满足条件执行的代码结构
}
\3. if(条件表达式1){
满足条件1执行的代码结构
}else if(条件表达式2){
满足条件2执行的代码结构
}else{
都不满足 执行的代码结构
}
注意:if可以单独使用 else只能配合if使用 不能单独使用
当满足了一个条件之后 就不会再满足后面的其他条件
if-else案例:
\1. 声明两个整型变量,输出较大的那个值
\2. 使用if结构判断打印不同成绩段对应的不同级别(0-59:不及格,60-69:及格,70-79:中,80-89:良,90-100:优秀)
public class HomeWork2{ public static void main(String[] args){ /*1. int a = 10; int b = 20; if(a>b){ System.out.println(a); }else{ System.out.println(b); }*/ /* 2. double a = 50; if(a>=0& a<=59){ System.out.println("不及格"); }else if(a>59&a<=69){ System.out.println("及格"); }else if(a>69&a<=79){ System.out.println("中"); }else if(a>79& a<=89){ System.out.println("良"); }else if(a>89& a<=100){ System.out.println("优秀"); }*/ }}
1.2 Scanner类
作用:在控制台输入内容以及接受用户输入内容的类
Scanner在使用的时候需要引入java.util包
import java.util.*;
使用Scanner类中的nextInt()方法来接收用户输入的整型数字
next()接收字符串
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
String s = sc.next();
1.3 switch结构
swtich(变量){
case 值1:
代码块;
break;
case 值2:
代码块;
break;
case 值3:
代码块;
break;
...
default:
不满足以上所有条件输出的代码块
break;
}
*注意:*
1.default 一般放在最后 也可以放在开头或者中间
2.case 分支的值不能相等
3.switch 条件必须是一个变量 不能是一个表达式
4.switch 条件变量数据类型只能使用 byte、short、int、char
新增 字符串 枚举
5.每个case语句中需要加上break;语句。如果遗漏了break,则会继续进入到下一个case。
1.4if-else与Switch的区别
(1)switch语句只能进行相等性测试,这一点与if语句不同,if语句可以对任何类型的布尔表达式进行求值。即,switch只查看表达式的值是否和某个case常量相匹配。
(2)相对于一系列嵌套的if语句,switch语句通常效率更高。
课后作业
1、输入两个数,输出其中较小的数。(**)
2、输入三个数,输出其中最大和最小的数。(***)
3、输入一个三位数,分别输出个、十、百、千位上的数字。(***)
4、输入两个数和运算符,输出运算结果,运算符可以是+ - * /以及%,使用swtich语句。(***)
5、判断是否是闰年。()
被400整除是闰年;能被4整除不能被100整除是闰年
6、输入1-12之间的数表示月份,打印输出该月份的天数(**)
import java.util.*; public class Homework04{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); /*1. System.out.println("请输入第一个数字"); Scanner sc = new Scanner(System.in); int a = sc.nextInt(); System.out.println("请输入第二个数字"); int b = sc.nextInt(); if(a>b){ System.out.println(a); }else{ System.out.println(b); }*/ /*2. System.out.println("请输入三位数"); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); if(a>b&b>c){ System.out.println("最大值为a"+a+"最小值为c"+c); } else if(a>c & c>b){ System.out.println("最大值为a"+a+"最小值为b"+b); } else if(c>a& a>b){ System.out.println("最大值为c"+c+"最小值为b"+b); } else if(c>b& b>a){ System.out.println("最大值为c"+c+"最小值为a"+a); } else if(b>a&a>c){ System.out.println("最大值为a"+a+"最小值为c"+c); } else if(b>c&c>a){ System.out.println("最大值为b"+b+"最小值为a"+a); } else{ System.out.println("有相等数字"); }*/ /*3. System.out.println("请输入一个四位数"); int a = sc.nextInt(); System.out.println("个位为:"+a%10); System.out.println("十位为:"+a%100/10); System.out.println("百位为:"+a/100); System.out.println("千位为:"+a/1000); */ /* 4. System.out.println("请输入第一个数字"); int a = sc.nextInt(); System.out.println("请输入运算符"); char c = sc.next().charAt(0); System.out.println("请输入第二个数字"); int b = sc.nextInt(); switch(c){ case'+': System.out.print("a+b="); System.out.println(a+b); break; case'-': System.out.print("a-b="); System.out.println(a-b); break; case'*': System.out.print("a*b="); System.out.println(a*b); break; case'/': System.out.print("a/b="); System.out.println(a/b); break; case'%': System.out.print("a%b="); System.out.println(a%b); break; } */ /*5. System.out.println("请输入年份"); int a = sc.nextInt(); if(a/4==0 & a/100!=0) { System.out.print(a); System.out.println("是闰年"); } else{ System.out.print(a); System.out.println("是平年");}*/ /*6. System.out.println("请输入月份"); int a = sc.nextInt(); switch(a){ case 1: System.out.println("该月份31天"); break; case 2: System.out.println("该月份29天"); break; case 3: System.out.println("该月份31天"); break; case 4: System.out.println("该月份30天"); break; case 5: System.out.println("该月份31天"); break; case 6: System.out.println("该月份30天"); break; case 7: System.out.println("该月份31天"); break; case 8: System.out.println("该月份31天"); break; case 9: System.out.println("该月份30天"); break; case 10: System.out.println("该月份31天"); break; case 11: System.out.println("该月份30天"); break; case 12: System.out.println("该月份31天"); break; }*/ } }