1.从键盘上接收数据
第一步:在类前面导包import java.util.Scanner;
第二步:在需要接收数据前获得接收数据的能力
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
第三步:用接收能力去接收数据
接收int数据: input.nextInt();
接收double数据: input.nextDouble();
接收String数据: input.next();
注意:不能从键盘上接收char类型数据.
2.基本数据类型(byte,short,int,long,float,double,char,boolean)表比较,
用关系运算符(>,>=,<,<=,!=,==).
String表比较: 字符串1.equals(字符串2);
eg://基本数据类型表比较
int num4=11;
int num5=11;
System.out.println(num4==num5);
//String类型表比较
String s1="abc";
String s2="abc";
System.out.println(s1.equals(s2));
3.Java中结构
3.1:顺序结构.
3.2:选择结构.
3.3:循环结构.
4.基本if选择结构:解决有一种情况的问题.
4.1:语法:if(条件){
代码块;
}
4.2:执行流程:如果条件为true,就执行代码块,再if结构之后的语句;如果条件为false,就执行之后的语句.
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("今天为了庆祝程序员节放假");
}
}
5.if-else结构:
解决有两种情况,这两种情况无论如何都要执行其中一种.
5.1:语法:if(条件){
代码块1;
}else{
代码块2;
}
5.2:执行流程:如果条件为true,就执行if大括号中代码块1;如果条件为false,就执行else大括号中代码块2,再执行结构之后的语句.
eg:public static void main(String[] args){
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
System.out.println("请问你是否有女朋友?(输入y表示有,其他表示没有):");
String answer=input.next();
//用if-else结构判断
if(answer.equals("y")){
System.out.println("今天为了庆祝程序员节,放假");
}else{
System.out.println("今天为了庆祝程序员节,学校送一个女朋友");
}
}
6.多重if选择结构:
解决有两种或两种以上情况的问题.
6.1:语法:if(条件1){
代码块1;
}else if(条件2){
代码块2;
}else if(条件3){
代码块3;
}else{
代码块4;
}
6.2:执行流程:
先判断条件1,如果条件1为true,就执行代码块1;如果条件1为false,就判断条件2
如果条件2为true,就执行代码块2;如果条件2为false,就判断条件3;
如果条件3为true,就执行代码块3;如果条件3为false,就直接执行else块中代码块4,
再执行结构之后的语句
6.3:结构特点:
6.3.1:在多重if选择结构中,if块有且仅有一个,else if块可以0个到多个,
else可以有0个到1个.
6.3.2:多重if选择结构中,最多执行一种情况,最少一种情况都不执行.
6.3.3:如果用多重if选择结构解决多种情况范围判断问题时,各种分支之间
不一定可以互换位置;
eg:public static void main(String[] args){
//获得具有从键盘上接收数据的能力
Scanner input=new Scanner(System.in);
System.out.println("请输入你的成绩:");
double score=input.nextDouble();
if(score>=90){
System.out.println("优秀");
}else if(score<=80&&score>=60){
System.out.println("及格");
}else if(score<90&&score>80){
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(today==1){
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 if(today==6){
System.out.println("早餐吃牛肉粉");
}else{
System.out.println("睡懒觉");
}
}
7.嵌套选择结构:
在一个选择结构的大括号中完整包含另一个选择结构,就叫嵌套选择结构.
7.1:所有的选择结构中都可以任意嵌套.
7.2:选择结构可以嵌套多层,一般情况下嵌套三层居多.
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("输入性别(男/女):");
String sex=input.next();
if(sex.equals("男")){
System.out.println("恭喜你进入男子组决赛");
}else if(sex.equals("女")){
System.out.println("恭喜你进入女子组决赛");
}else{
System.out.println("性别不详");
}
}else{
System.out.println("谢谢参与");
}
}
8.switch结构:解决多种情况的等值判断问题. 常量:具体的值.
8.1:语法:switch(表达式){
case 常量1:
代码块1;
break;
case 常量2:
代码块2;
break;
default:
default代码块;
break;
}
8.2:执行流程:先判断表达式的值,如果表达式的值等于case后面常量1,就执行代码块1,执行完代码块1,遇到break或者是结尾的大括号就跳出switch结构,执行之后的语句;
如果表达式的值等于case后面常量2,就执行代码块2,执行完代码块2,遇到break或者是结尾的大括号就跳出switch结构,执行之后的语句;
如果表达式的值不等于任何一个case后面的常量 ,就执行default中代码,执行完default代码块,遇到break或者是结尾的大括号就跳出switch结构,执行之后的语句;
8.3:结构特点:
8.3.1:switch结构中表达式结果的类型,在java7之前支持byte、short、int、char、enum(枚举);java7之后可以是String
8.3.2:switch结构中,case块可以有0个到多个,default有且仅有0个到1个.
8.3.3:switch结构中,case块之间可以互换位置,不影响结果.default块也可以放在switch结构中任意位置.
8.3.4:在同一个switch结构中,case后面常量值不可以相同,否则报错.
8.3.5:一般情况下,switch结构中不能省略break,如果省略break,语法不报错,但是switch结构只会判断一次,执行case块中代码,然后没有break,会继续执行,后面不会再判断,直到遇到遇到break或者是结尾的大括号就跳出switch结构,执行之后的语句;
8.3.6: switch结构中最少执行0个分支情况,最多全部执行.
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;
}
}
9.多重if VS switch
9.1:相同点:
9.1.1:都可以解决多种情况的等值判断问题.
9.1.2:都是最少执行0种情况(分支).
9.2:不同点:
9.2.1:多重if既可以解决多种情况的范围判断问题,又可以解决多种情况等值判断问题;
switch结构只能解决多种情况等值判断问题.
9.2.2:多重if结构最多只能执行一个分支情况;switch结构可以执行多个分支情况.
9.2.3:多重if结构的条件可以是任意表达式,只要表达式结果是boolean;
switch结构中表达,在java7之前支持byte、short、int、char、enum (枚举);
java7之后可以是String.
9.2.4:多重if结构中,各个分支之间不一定可以互换位置;
switch结构中,在不省略break情况下,各个分支之间可以互换位置,不影响结果;
9.2.5:多重if结构中,执行完一个分支情况就跳出多重if结构中;
switch结构中,只有遇到break或者结尾大括号,才能跳出switch结构.
9.3:一般解决多种情况等值判断问题,首选switch结构.