1.if…else…和三元运算的区别
共同点
都是针对两种情况进行判断,都有表达式;
不同点
if...else..流程控制语句,范围很大,不仅可以操作数据值,还可以操作输出语句去完成逻辑判断;而三元运算符仅仅是运算符,操作两个具体的数据值;
三元运算符能实现的一定能使用if...else...流程语句
if...else...流程语句能实现的,不一定能使用三元!
2.if…else…嵌套
使用键盘录入数据,录入三个数据,求三个数据中的最大值?
if....else....一种嵌套 (不推荐,知道可以实现解决一些问题)
if(表达式1){
if(表达式2){
语句1;
}else{
语句2;
}
}else{
if(表达式3){
语句3;
}else{
语句4;
}
}
一、流程控制语句
1.流程控制语句之switch(考点很多)
选择结构之switch
switch(变量名){
case 值1:
语句1;
break ;
case 值2;
语句2;
break ;
....
....
....
default:
语句n;
break ;
}
执行流程
switch后面的变量需要和case进行匹配,case 值1:成立,执行语句1,
遇见break,switch语句结束;
如果不匹配,继续执行case 值2:成立,执行语句2,break结束
面试题之-----switch语句后面的变量名可以是什么样的数据类型
switch语句后面的这个变量名可以是什么样的数据类型呢?
本身能够跟的基本数据类型:byte,short,char,int
Jdk5以后可以是枚举(引用类型) enum
JDK7以后可以跟String类型
switch语句的注意事项
1)case语句后面只能是常量(在Java类语言中)
2)在case语句里面,一旦匹配成功,一定要书写break;否则会造成case穿透,case匹配成功了,就会执行里面的语句,遇见break语句结束;
3)switch中的default语句可以在语句中的任何位置,不影响语句的执行流程
正常的格式,在语句末尾,break可以是省略的;
如果在语句中,break带上,否则case穿透了 (考点)
4)switch语句的结束条件:
第一种情况,就是语句break结束; case语句后面的break或者default语句的break
第二种情况,就是语句默认执行到末尾结束!
例题
import java.util.Scanner ;
class SwitchTest2{
public static void main(String[] args){
Scanner sc = new Scanner(System.in) ;
System.out.println("请输入一个月份的值:") ;
int month = sc.nextInt() ;
switch(month){
case 3:
case 4:
case 5:
System.out.println("春季") ;
break ;
case 6:
case 7:
case 8:
System.out.println("夏季") ;
break ;
case 9:
case 10:
case 11:
System.out.println("秋季") ;
break ;
case 1:
case 2:
case 12:
System.out.println("冬季") ;
break ;
default:
System.out.println("对不起,地球没有该月份!") ;
break ;
}
使用switch语句来模拟“单选选择题”
键盘录入的时候,不能录入字符类型的 (可以使用录入String类型) ,
switch(变量名):jdk7以后跟String,但是想办法将录入的数据---转换成char类型
本身能够跟的类型 byte short,int,char
单项选择题 ---- 也可以使用键盘录入对象名.nextLine()--->录入字符串
A B C D
分析:
1)模拟一个选择题出阿里
65 xxx
66 xxx
67 xxx
68 XXX
2)键盘录入int类型
3)将int类型数据 ----强转类型转换char类型 ,65--->'A'
4)使用switch(字符类型){
case 'A':
语句1;
break;
case 'B':
语句2;
break ;
例题
import java.util.Scanner ;
class SwitchTest3{
public static void main(String[] args){
System.out.println("杨哥喜欢的女明星?") ;
System.out.println("65 刘亦菲") ;
System.out.println("66 高圆圆") ;
System.out.println("67 张佳宁") ;
System.out.println("68 孙俪") ;
Scanner sc = new Scanner(System.in) ;
System.out.println("请输入您的选择:") ;
int choice = sc.nextInt() ;
char choiceNum = (char)choice ;
switch(choiceStr){
case 'A'
System.out.println("对不起,答案错误!") ;
break ;
case 'B'
System.out.println("恭喜您,答案正确!") ;
break ;
case 'C'
System.out.println("对不起,答案错误!") ;
break ;
case 'D':
System.out.println("对不起,答案错误!") ;
break ;
}
}
}
2.循环结构语句(重点去会使用)
for循环格式
当需求中有这种循环的思想,就需要使用循环语句去实现
for循环格式
for(初始化语句;条件表达式;控制体语句){
//实际开发中,此处需要去完成一些逻辑判断
循环体语句;
}
执行流程:
1)初始化语句,对变量进行赋值,
2)条件表达式判断结果是否成立,成立,则执行循环体语句,进行控制体语句++或者--
3)继续判断条件表达式是否成立,成立,继续上面这种操作...
...
...
如果控制体语句造成了条件表达式不成立,语句结束!
需求:输出10次"helloworld"
class Demo{
public static void main(String[] args){
//for(初始化语句;条件表达式;控制体语句){
//循环体语句;
//}
for(int x = 1 ; x <=10;x++){//x=1,1<=10,x++,2<=10,继续循环体
//循环体语句;
System.out.println("helloworld") ;
}
求和思想
class ForDemo{
public static void main(String[] args){
System.out.println(1) ;
System.out.println(2) ;
System.out.println(3) ;