用户交互Scanner
-
Scanner对象:java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。
-
基本语法:
Scanner s = new Scanner(System.in);
-
通过Scanner类的next()与nextLine()方法获取输入的字符串,再读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
-
next()方法:
-
一定要读取到有效字符才可以结束
-
对输入有效字符之前的空白,next()方法会自动给他去掉。
-
只有输入有效字符后才将其后面输入的空白作为分隔符或结束符。
-
next()不能得到带有空白的字符串。
package com.wsn.javase; import java.util.Scanner; public class scannerDemo { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner sc = new Scanner(System.in); System.out.println("使用next方式接收"); //判断用户有没有输入字符串 if(sc.hasNext()){ //使用next方式接收 String str = sc.next(); System.out.println("输出的内容为:"+str); } scanner.close();//凡是IO流如果不关闭都会占用资源,使用完要释放资源。 } }
-
-
nextLine()方法:
-
以Enter为结束符,也就是nextLine()方法返回的是输入回车之前的所有字符。
-
可以获得空白。
package com.wsn.javase; import java.util.Scanner; public class scannerDemo { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner sc = new Scanner(System.in); System.out.println("使用nextLine方式接收"); //判断用户有没有输入字符串 if(sc.hasNextLine()){ //使用next方式接收 String str = sc.nextLine(); System.out.println("输出的内容为:"+str); } sc.close();//凡是IO流如果不关闭都会占用资源,使用完要释放资源。 } }
-
顺序结构
-
JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
-
顺序结构是最简单的算法结构,他是任何一个算法都离不开的一种基本算法结构。
选择结构
-
if单选择结构
语法:
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}
-
if双选择结构
if(布尔表达式){
//如果布尔表达式为true将执行的语句
}else{
//如果布尔表达式为false将执行的语句
}
-
if多选择结构
if(布尔表达式 1){
//如果布尔表达式1为true将执行的语句
}else if(布尔表达式 2){
//如果布尔表达式2为true将执行的语句
}else if(布尔表达式 3){
//如果布尔表达式3为true将执行的语句
}else{
//如果以上布尔表达式都为false将执行的语句
}
-
嵌套的if结构
if(布尔表达式 1){
//如果布尔表达式1为true将执行的语句
if(布尔表达式 2){
//如果布尔表达式 2为true将执行的语句
}
}
-
switch多选择结构
switch(expression){
case value ://语句
break;//可有可无
case value ://语句
break;//可有可无
default : //可有可无
//语句
}
eg:
循环结构
-
while循环
语法:
while(布尔表达式){
//循环内容
}
-
先判断后执行。
-
只要布尔表达式为true,循环就会一直循环下去。
-
我们大多数情况下需要让循环停止下来,我们需要一个表达式失效的方式来结束循环。
-
少部分情况需要循环一直执行下去,比如服务器的请求响应监听等。
-
循环条件只要为true就会造成无限循环(死循环 while(1){//代码}),我们正常的业务需要避免死循环。
-
do...while循环
语法:
do{
//循环内容
}while(布尔表达式);
-
先执行后判断。
-
循环至少执行一次。
-
for循环
语法:
for(初始化;布尔表达式;更新){
//代码语句
}
-
for循环是支持迭代的一种通用结构,是最有效最灵活的结构。
-
for循环的执行次数是在执行之前就确定下来的
-
for(;;){//代码}这也是死循环的一种。
-
主要运用于数组的增强型for循环
语法:
for(声明语句:表达式){
//代码句子
}
-
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型相匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
-
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
eg:
int[] numbers = {10,20,30,40,50}; //遍历是数组元素 for(int x:numbers){ System.out.println(x); }
break & continue
-
break在任何循环语句的主体部分,均可使用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。
-
continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。