1.if语句
(1)概念:用于做判断使用的
(2)用途:常见的对于某个范围进行判断,或者对几个变量进行判断,还有就是对boolean表达式的判断。
(3)格式:
A:第一种格式
if(条件表达式)
{
语句体;
}
执行流程:
如果条件表达式为true,就执行语句体;否则,什么都不执行。
B:第二种格式
if(条件表达式)
{
语句体1;
}
else
{
语句体2;
}
执行流程:
如果条件表达式为true,就执行语句体1;否则,就执行语句体2
注意:
可以和条件运算符的条件表达式在某些情况下进行替换。
一般是在赋值的情况下可以。
C:第三种格式
if(条件表达式1)
{
语句体1;
}
else if(条件表达式2)
{
语句体2;
}
..........
else
{
语句体 n;
}
执行流程:
如果条件表达式1为true,就执行语句体1;
如果条件表达式2为true,就执行语句体2;
.............
否则,就执行语句体n;
D:注意事项
a:几种if格式的应用场景:
第一种格式在判断条件为一种的情况下使用。
第二种格式在判断条件为两种的情况下使用。
第三种格式在判断条件为多种的情况下使用。
b:每一种if语句其实都是一个整体,如果有地方执行了,
其他的就不执行了。
c:如果if或者else里面控制的语句体是一条语句,是可以省略大括号的,
但是,如果控制多条语句,就必须写上大括号。(建议永远写上大括号)
d:大括号和分号一般不同时出现。
e:作用域:
所有变量的定义只在他所属的大括号内有效
(4)Scanner的使用:
(1)Scanner是JDK5以后设计的用来接收键盘录入数据使用的。
(2)使用Scanner键盘录入int数据的步骤:
A:导包
import java.util.Scanner;
B:创建对象,封装键盘录入
Scanner sc = new Scanner(System.in);
C:调用方法,获取数据
int number = sc.nextTnt();
(5)if判断结构案例
A:根据键盘录入的成绩,判断等级。
import java.util.Scanner;
class IfTest2
{
public static void main(String[] args)
{
//封装键盘录入
Scanner sc = new Scanner(System.in);
//提示键盘录入分数
System.out.println("请输入分数;");
int score = sc.nextInt();
String level;
//判断结构
if(score>=90 && score<=100)
{
level = "A等";
}
else if(score>=80 && score<90)
{
level = "B等";
}
else if(score>=70 && score<80)
{
level = "C等";
}
else if(score>=60 && score<70)
{
level = "D等";
}
else if(score>=0 && score<60)
{
level = "E等";
}
else
{
level = "分数有误";
}
System.out.println(score+"----"+level);
}
}
B:根据键盘录入的月份,输出该月份所对应的季节。
import java.util.Scanner;
class IfTest3
{
public static void main(String[] args)
{
//封装键盘录入
Scanner sc = new Scanner(System.in);
//提示
System.out.println("请输入月份(1-12):");
int month = sc.nextInt();
if(month==1 || month==2 || month==12)
{
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("秋季");
}
else
{
System.out.println("月份有误");
}
2.switch语句
(1)用于做选择使用的。一般用于几个常量的判断。
switch会把几个常量值直接加载到内存,在判断的时候,效率要比if高。
所以,针对几个常量的判断,一般选择switch语句。
(2)switch语句的格式:
switch(表达式)
{
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
...
default:
语句体n;
break;
}
A:针对格式的解释
switch:表示这里使用的是switch语句,后面跟的是选项。
表达式:byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是字符串
case:表示这里就是选项的值,它后面的值将来和表达式的值进行匹配。
注意: case后面的值是不能够重复的。
break:
switch语句执行到这里,就结束了。
default:
当所有的case和表达式都不匹配的时候,就走default的内容。
它相当于if语句的else。一般不建议省略。
B:执行流程
进入switch语句后,就会根据表达式的值去找对应的case值。
如果最终没有找到,那么,就执行default的内容。
C:注意事项:
a:default整体可以省略吗?
可以,但是不建议。
b:default的位置可以放到前面吗?
可以,但是不建议。
c:break可以省略吗?
可以,但是不建议。
default在最后,break是可以省略的。
case后面的break可以省略,但是结果可能有问题。
d:switch语句什么时候结束呢?
就是遇到break或者执行到程序的末尾。
(3)案例:
根据键盘录入的日期(1-7),输出对应的星期日期。
class SwitchDemo
{
public static void main(String[] args)
{
//根据给定的一个数据(1-7),请输出对应的星期日期。
int week = 3;
week = 13;
switch(week)
{
case 1:
System.out.println("星期一");
break;
case 2:
System.out.println("星期二");
break;
case 3:
System.out.println("星期三");
break;
case 4:
System.out.println("星期四");
break;
case 5:
System.out.println("星期五");
break;
case 6:
System.out.println("星期六");
break;
case 7:
System.out.println("星期日");
break;
default:
System.out.println("日期输入有误");
break;
}
}
}