@一贤不穿小鞋
1.基本数据类型(byte,short,int,long,float,double,char,boolean)表比较,
- 用关系运算符(>,>=,<,<=,!=,==).
- String表比较: 字符串1.equals(字符串2);
eg:public static void main(String[] args){
//准备几个变量
int num1=11;
int num2=11;
String s1="abc";
//基本数据类型表比较,用关系运算符
boolean result1=num1==num2;
//字符串表比较,用equals()
boolean result2=s1.equals("abc");
System.out.println("result1="+result1+",result2="+result2);
}
2.Java中结构
- 顺序结构
- 选择结构
- 循环结构
3.基本if选择结构:解决只有一种情况的问题.
3.1:语法:
if(条件){
代码块;
}
3.2:执行流程:
如果条件为true,就执行代码块,代码块执行完后就执行if结构之后的语句;如果条件为false,就直接执行if结构之后的语句;
eg:public static void main(String[] args){
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
System.out.println("刘梦龙上课是否犯困?(y表示是,其他表示否):");
//接收用户从键盘上输入,并存在一个变量中
String answer=input.next();
//基本if结构的使用
if(answer.equals("y")){
System.out.println("站着听讲");
}
}
题目:问自己是否有女朋友,如果有,双11就带女朋友去约会.
4.if-else结构:
- 解决有两种情况,且两种情况无论如何都一定要执行其中一种情况.
4.1:语法:
if(条件){
代码块1;
}else{
代码块2;
}
4.2:执行流程:
如果条件为true,就执行代码块1;如果条件为false,就执行代码块2,代码块执行完后就执行if-else之后的语句.
eg: public static void main(String[] args){
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
System.out.println("你们是否有女朋友?(y表示是,其他表示否):");
String answer=input.next();
//第一种:if-else结构的使用
if("y".equals(answer)){
System.out.println("双11带女朋友去约会");
}else{
System.out.println("来教室敲代码");
}
//第二种:实现
/*if("y".equals(answer)){
System.out.println("双11带女朋友去约会");
}
if(!"y".equals(answer)){
System.out.println("来教室敲代码");
}*/
}
5.多重if选择结构:
- 解决有两种及以上情况判断问题.
5.1:语法:
if(条件1){
代码块1;
}else if(条件2){
代码块2;
}else if(条件3){
代码块3;
}else{
else中代码块;
}
5.2:执行流程:
判断条件1,如果条件1为true,就执行代码块1,执行完代码块1,就执行这个结构之后的语句;如果条件1为false,就判断条件2,如果条件2为true,就执行代码块2,执行完代码块2,就执行这个结构之后的语句;如果如果条件2为false,就判断条件3,如果条件3为true,就执行代码块3,执行完代码块3,就执行这个结构之后的语句;如果条件3为false,就无条件执行else中代码块,执行完后,就执行这个结构之后的语句.
5.3:多重if选择结构的执行特点:
- 在多重if选择结构中,if块有且仅有一个;else if块可以有0个到多个;
else可以有0个到1个. - 在多重if选择结构中,最多执行一种情况(一个分支),最少执行0种情况(0个分支).
- 在多重if选择结构解决区间(范围)判断问题时,分支之间不一定能互换位置.
- 在在多重if选择结构解决等值判断问题时,分支之间可以互换位置,不影响结果.
eg:public static void main(String[] args){
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
System.out.println("请输入你的考试成绩:");
double score=input.nextDouble();
//多重if结构的使用
//java中不可以90>score>=80,只能写成score<90&&score>=80
if(score>=90){
System.out.println("优秀");
}else if(score<90&&score>=80){
System.out.println("良好");
}else if(score<80&&score>=60){
System.out.println("合格");
}else{
System.out.println("再接再厉");
}
}
public static void main(String[] args){
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
System.out.println("请输入今天是星期几?(只能输入1-7数字):");
int today=input.nextInt();
//多重if结构
if(today==1){
System.out.println("包子");
}else if(today==6){
System.out.println("粥");
}else if(today==2){
System.out.println("油条");
}else if(today==3){
System.out.println("海鲜");
}else if(today==4){
System.out.println("肠粉");
}else if(today==5){
System.out.println("蒸米粉");
}else{
System.out.println("睡觉");
}
}
题目:今天星期一,给妈妈打个电话,如果今天是星期二给女朋友打个电话,
如果今天是星期三给爷爷打个电话,星期四给妹妹打个电话.
6.嵌套选择结构
- 在一个选择结构的大括号中完整包含另一个选择结构.
6.1:选择结构之间可以随意嵌套,但嵌套要正确.
6.2:选择结构之间可以多层嵌套,一般目前最多嵌套三层.
eg:public static void main(String[] args){
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
System.out.println("请输入你的考试成绩:");
double score=input.nextDouble();
if(score>=0&&score<=100){
//多重if结构的使用
//java中不可以90>score>=80,只能写成score<90&&score>=80
if(score>=90){
System.out.println("优秀");
}else if(score<90&&score>=80){
System.out.println("良好");
}else if(score<80&&score>=60){
System.out.println("合格");
}else{
System.out.println("再接再厉");
}
}else{
System.out.println("你的输入有误!");
}
}
题目:现在参加百米赛跑,请问你百米赛跑的时间,如果时间大于10秒,谢谢参与;
如果时间小于或等于10秒就恭喜你进入决赛;再问你的性别,如果性别是男,
就恭喜你进入男子组决赛,否则进入女子组决赛.
eg:public static void main(String[] args){
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
System.out.println("现在参加百米赛跑,请问你百米赛跑的时间:");
double time=input.nextDouble();
if(time<=10){
System.out.println("请输入性别(man表示男,其他表示女):");
String sex=input.next();
if(sex.equals("man")){
System.out.println("恭喜你进入男子组决赛");
}else{
System.out.println("恭喜你进入女子组决赛");
}
}else{
System.out.println("谢谢参与");
}
}
7.switch结构解决多种情况的等值判断问题.
常量:固定的值.
7.1:语法:
switch(表达式){
case 常量1:
代码块1;
break;
case 常量2:
代码块2;
break;
...
default:
default代码块;
break;
}
- 常见错误:
无break、常量重复、default未放最后、jdk1.8之前不能用String类型必须是整型或字符型、
7.2:执行流程
- 如果switch结构中表达式等于case后面常量1, 就执行代码块1,直到遇到break或结尾括号就跳出switch结构执行之后语句;
- 如果switch结构中表达式等于case后面常量2,就执行代码块2,直到遇到break或结尾括号就跳出switch结构执行之后语句;
- 如果switch结构中表达式不等于case后面任意一个常量,就默认执行default代码块直到遇到break或结尾括号就跳出switch结构执行之后语句;
7.3:结构特点:
- switch结构的表达式在jdk1.7之前,支持byte,short,int,char,枚举(enum) 类型,在jdk1.7之后还支持String类型.
- 在switch结构,case块可以0个到多个,default块可以0个到1个.
- 在同一个switch结构,case后面的常量值不可以相同.
- 在switch结构中,如果不省略break,最多执行一种情况(一个分支),最少什么都不执行(0个分支);如果省略break,switch结构会出现case贯穿现象(switch结构的表达式只会判断一次,从满足的case块开始执行代码,直到遇到结尾的大括号跳出结构)
- 在同一个switch结构,case之间可以互换位置,不影响结构.
- 在同一个switch结构,default块可以放在switch结构的大括号中任意位置.
eg:public static void main(String[] args){
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
System.out.println("请输入今天是星期几?(只能输入1-7数字):");
int today=input.nextInt();
switch(today){
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;
}
}
8.多重if VS switch
8.1:相同点:
- 都可以解决多种情况的等值判断问题.
- 都是最少执行0种情况.
8.2:不同点:
- 多重if结构既可以解决多种情况的等值判断问题,也可以解决多种情况的范围判断判断问题;switch结构只能解决多种情况的等值判断问题.
- 多重if结构的条件的结果是boolean类型.
switch结构的表达式的结果类型在jdk1.7之前可以是byte,short,int,char类型
在jdk1.7之后还可以是String类型 - 多重if选择结构最多执行一种情况(一种分支);
- switch结构最多可以执行多种情况(省略break后).
- 多重if结构的分支之间不一定可以互换位置;
- switch结构的分支之间可以互换位置;
- 多重if结构在执行完一种分支后就跳出多重if结构;
switch结构在执行完一种分支后只有遇到break或结尾大括号才会跳出switch结构.
8.3:在解决多种情况的等值判断问题时,多重if结构和switch结构都可以解决,但是switch结构解决.
9.局部变量:在方法中声明的变量叫局部变量.
- 成员变量:在类中,且在方法外面声明的变量叫成员变量.
注意:局部变量的作用域(范围)仅在声明它的大括号中有用.
总结:
1.赋值运算符
2.运算优先级
3.三元运算符
4.表达式
5.从键盘上接收用户输入的数据(重点)
6.基本数据类型的比较和String的比较(重点)
7.基本if结构(重点)
8.基本if-else结构(重点)
9.多重if结构(重点)
10.嵌套选择结构
11.switch结构(重点)
12.多重if结构和switch结构的区别