Java入门学习记录(三)
用户交互Scanner
之前学习的语法中并没有实现程序和人的交互,但是Java提供给了这样一个工具类,可以获取用户的输入。java.util.Scannner
是 Java5 的新特征,可以通过 Scannner
类来获取用户的输入。
Scanner s = new Scanner(System.in);
通过 Scanner 类的 next() 与 nextLine() 方法获取输入的字符串,在读取前一般需要使用 hasNext() 与 hasNextLine() 判断是否还有输入的数据。
import java.util.Scanner
public class Demo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收:");
//System.out.println("使用nextLine方式接收:");
if (scanner.hasNext()){
String str = scanner.next();
System.out.println("输入的内容:"+str);
//if (scanner.hasNextLine()){
// String str = scanner.nextLine();
// System.out.println("输入的内容:"+str);
}
scanner.close();
}
}
next()
- 一定要读取到有效字符才结束
- 对于输入有效字符之前遇到的空白,next() 方法会自动将其去掉
- 只有输入有效字符后才将其后面输入额定空白作为分隔符或者结束符
- next() 不能得到带有空格的字符串
nextLine()
- 以 Enter 为结束符,即此方法返回的是输入回车之前的所有字符
- 可以获得空白
结构
顺序结构
Java 的基本结构就是顺序结构,除非特别指明,否则就是按照顺序一句一句执行
顺序结构是最简单的算法结构,即:逐条向下执行
选择结构
if 单选择结构
if (boolean expression){
// 布尔表达式为 (true) 所执行的语句
}
if 双选择结构
if (boolean expression){
// 布尔表达式为 (true) 所执行的语句
}
else {
// 布尔表达式为 (false) 所执行的语句
}
if 多选择结构
if (boolean expression 1){
// 布尔表达式 1 为 (true) 所执行的语句
}else if (boolean expression 2){
// 布尔表达式 2 为 (false) 所执行的语句
}else if (boolean expression 3){
// 布尔表达式 3 为 (false) 所执行的语句
}else {
// 以上布尔表达式为 (false) 所执行的语句
}
嵌套的 if 结构
if (boolean expression 1){
// 布尔表达式 1 为 (true) 所执行的语句
if (boolean expression 2){
// 布尔表达式 2 为 (true) 所执行的语句
}
}
switch 多选择结构
判断 expression 是否与 value 对应,执行相应的 case 里面的语句
switch(expression){
case value:
// 语句
break; // 可选
case value:
// 语句
break;
default:
// 语句
}
从 Java SE 7 开始,switch 支持字符串 String 类型了
循环结构
while 循环
while(boolean expression){
// 内容
}
do…while 循环
do{
// 内容
}while(boolean expression);
与 while 循环相似,但是 do…while 循环至少会执行一次
for 循环
for(初始化; 布尔表达式; 更新){
// 语句
}
增强 for 循环
for(声明语句: 表达式){
// 表达式
}
主要用于数组或集合的遍历
声明语句:声明新的局部变量,该变量的类型必须与数组的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
如下相当于遍历了一遍数组 num,并输出
public class Demo {
public static void main(String[] args) {
int[] num = {1, 2, 3, 4, 5};
for (int x: num){
System.out.println(x);
}
}
}
break continue
break 在任何循环语句的主体部分,均可用 break 控制循环过程。break 用于强制退出循环,不执行循环中剩余的语句。( break 语句也可在 switch 语句中使用 )
continue 语句用在循环语句中,用于中止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次循环判断