用户交互Scanner
用户和计算机之间的交互的工具类,在java.util.Scanner包下,是java5的新特性,我们可以通过Scanner类来获取用户输入。
基本语法
Scanner sc = new Scanner(System.in);
通过Scanner类下的next()与nextLine()方法获取输入的字符串。hasNext()和hasNextLine()方法判断还有没有输入。
Scanner sc = new Scanner(System.in);
if(sc.hasNext()){
String str = scanner.next();//接收字符串
}
scanner.close();//关闭io流,不关的话会一直占用资源。
next与nextLine的区别:
next:
- 一定要读取到有效字符才可以结束输入。
- 对有效输入字符前遇到的空白,会自动去掉。
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- 不能得到带空格的字符串。
nextLine:
- 以enter为结束符。
- 可以获取空白。
顺序结构
- java中的基本结构,除非特别指明,否则就按照顺序一句一句执行。
- 顺序结构是最简单的算法结构。
选择结构
if语句
if单选择结构
if(布尔表达式){
执行语句;
}
if双选择结构
if(布尔表达式){
条件成立,执行;
}else{
条件不成立,执行;
}
if多选择结构
if(布尔表达式){
执行语句;
}else if(布尔表达式){
执行语句;
}else if(布尔表达式){
执行语句;
}...
嵌套的if结构
if(布尔表达式){
if(布尔表达式){
执行语句;
}
}
switch多选择结构
switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
格式:
switch(值){
case 条件判断;
语句
break;//可选填
case 条件判断;
语句
break;//可选填
case 条件判断;
break;//可选填
//可写任意数量的case语句
default;//可选
语句;
}
如果不写break,则会在条件成立后往下继续执行,直到遇到break,并且条件不成立。建议加break。
jdk7之后,可以用字符串判断。
循环结构
while循环
while(布尔表达式){
//循环语句;
//(可选)步进表达式;
}
-
只要布尔表达式为true,循环就会一直执行。
-
我们大多数情况会让循环停下来。
-
少部分情况才需循环一直执行,比如服务器监听器等。
-
循环条件一直为true就会造成死循环,尽量避免。
do…while循环
do{
//循环语句;
//(可选)步进表达式;
}while(布尔表达式);
必定会执行一次。
for循环
for(初始值 ; 布尔语句 ; 更新){//里面的三个参数可以不写,但是要写两个分号
//循环语句;
}
//死循环
for( ; ; ){
}
for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构。
增强for循环
java5引入了一种主要用于数组或者集合的增强for循环。
格式
for(声明语句 :表达式){
//代码语句;
}
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配,其作用域限定在循环语句块,值与此时数组元素的值相同。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
break&continue
break
在任何循环语句的主体部分,均可使用break控制循环的流程,用于强制退出循环,不执行剩余语句。
continue
用于终止某次代码执行,跳过本次代码执行,接下来继续执行。