一、Scanner(扫描仪)
Scanner使用:
System.out.println(“请从控制台输入”);
java.util.Scanner s = new java.util.Scanner(System.in);
int n = s.nextInt();//从控制台输入一个整数。
double d = s.nextDouble();//从控制台输入一个double类型的数。
String ss = s.next();//从控制台输入一个字符串类型的值。
char c = s.next().charAt(0);//从控制台输入一个字符串获取第一个字符。
注意:当输入的类型和要求的类型不匹配会报如下错误
注意:java.util.Scanner是全限定名 java.util是包结构。
二、import
导包 :在package的下面可以使用import 类的全限定名;代表的是导入包结构。一旦导包之后,那么在使用类的时候就不需要写包名。
:通配符 代表的是所有。
import java.util.;代表的是将来使用java.util包下面的所有类的时候都不需要进行导包。
注意:使用到java.lang包下的类的时候不需要导包。
三、选择分支流程
a) 概念:通过需要判断一定的条件,如果满足条件,则执行相应的代码,如果不满足则执行其他代码。
b)分类:
i.基本选择结构
1.if基本结构
a)语法
if(逻辑判断 布尔表达式){
//代码块
}
//后续代码
b)执行流程:
首先会对布尔表达式进行判断,如果结果为true,则执行代码块,再执行 后续代码;如果布尔表达式的结果为false,则直接执行后续代码。
注意:在程序中if结构可以出现多次。 会分别对每一个if中的布尔表达式进行判断,如果结果为真,则都执行。
2.if-else结构
a)语法
if(布尔表达式){
//代码块1
} else{
//代码块2
}
//后续代码
b) 执行流程:
首先对布尔表达式进行判断,如果为true,则执行代码块1,然后执行后续代码;如果为false,则执行代码块2,然后执行后续代码。
注意:if和else中的代码块不能同时执行。
问题:当逻辑判断比较比较多的时候,if结构和if-else结构不能满足要求或者执行效率低。
ii.if-else if结构:
1.语法
if(布尔表达式1){
//代码块1
} else if(布尔表达式2){
//代码块2
}else if(布尔表达式3){
//代码块3
}….else{
//代码块n
}
2.执行流程:
如果哪个布尔表达式的结果为true,则执行{}里面的代码,其他布尔表达式不再进行判断。
3.注意:
else{}可以省略。如果省略,则会判断布尔表达式的结果,为true,执行{}的代码,接着执行后续代码;如果布尔表达式的结果为false,则直接执行后续代码。
iii.if的嵌套
1.语法
if(布尔表达式1){
if(布尔表达式2){
//代码块2
}else{
//代码块n
}
}else{
if(){
}
}
2. 执行流程:首先会判断外层的布尔表达式,如果表达式的结果为true,才会进入到内部,对内部的布尔表达式进行判断。
c) switch-case分支结构
i.语法
switch(变量){
case 值1:代码块1;
case 值2:代码块2;
……
case 值n:代码块n;
}
所表示的含义是:
变量与case后面的值进行匹配,如果匹配上了则执行后面的代码块的内容。
ii.注意:
1.switch()只能出现byte,short,int,char,JDK1.7之后可以出现String。
2.break关键字:跳出switch结构,在case代码块的末尾使用。
3.default关键字:默认的 ,当switch结构中的变量与case后面的值都没有匹配上,则执行的是default后面的语句。
default语句没有先后顺序;
default出现在switch结构的末尾处,可以省略break关键字。当default语句出现在开头时,break不能省略。
4.case后面不能够出现重复的值。
case后面的代码块可以出现相同的,但是存在冗余,可以将case后面的语句删除。