Day02 学习Java
1.Scanner类的使用
- 这是一个用户交互相关,进行输入的类
Scanner scanner = new Scanner(System.in);
String str = scanner.next(); // 会进行阻塞,直到输入数据
System.out.println(str);
- 但是scanner这个对象,有不同的方法,next()方法遇到空格就结束,nextLine()遇到回车才结束,但都会移动游标
Scanner scanner = new Scanner(System.in);
String str = scanner.next(); // 会进行阻塞,直到输入数据
System.out.println(str);
String str1 = scanner.nextLine(); // 会进行阻塞,直到输入数据
System.out.println(str1);
- 还可以用scanner.hasNextInt(),scanner.hasNextFloat等方法进行判断,是否是对应数据类型,这方法也会阻塞,但只进行判断输入的数据类型,否则获取值报错,不会移动游标
Scanner scanner = new Scanner(System.in);
if(scanner.hasNextInt()){ // 程序运行时会阻塞在这里,但是如果输入的是int类型会对num赋值,如果输入的是浮点数,会直接赋值到num1
int num=scanner.nextInt();
}
if(scanner.hasNextFloat()){
float num1=scanner.nextFloat();
}
2.java 的结构
- 顺序结构
- 选择结构
- 循环结构
选择结构
- 单个if
- 单个if else 的结构
- 多个if else if else
- switch 结构 :做好使用break,进行跳出,否则会导致case穿透
循环结构
- while 循环
- do while 循环 : 至少执行一次
- for 循环
- jdk 1.5 开始可以使用 增强for循环 来遍历集合,数组
for(;;){} // 相当于死循环
注:
- 循环结构中可以使用break,continue结束当前循环,但是效果不一样,如下代码,使用break跳出循环66及之后的数字都不输出,使用continue则只是不输出66
for(int i=0;i<100;i++){
if(i==66){
break; //continue;
}
System.out.println(i);
}
- java 也保留了goto 关键字,但是不能使用,可以用break,continue加lable:标签达到相同的功能
out:for(int i=0;i<100;i++){
for(int j=0;j<100;j++){
if(j==50){
break out; //直接跳出最外层循环,也就是说i只运行了0
// continue out; // 直接跳出到最外层循环,也就是说i执行了全部,j每次只从0-49
}
}
System.out.println("i: " +i+" j: "+j);
}
Java 方法
- 格式 修饰符 返回值类型 方法名(参数列表){ 方法体 }
- 其中 没返回值的使用void 有返回值的使用return 返回值
- 方法可以进行重载,即方法名相同,但是参数的顺序,类型,个数不一样
- 返回值类型和重载没有关系
- 方法还可以实现传递可变参数,但是一个方法 只能有一个可变参数 ,而且可变参数必须在参数列表的末尾
- 可变参数使用时可以传递空参
// 重载
public int add(int a, int b){return a+b;}
public int add(int a, int b, int c){return a+b+c;}
// 可变参数
public int add(int... a){
int sum=0;
if(a.length == 0){return 0;}
for(int i=0;i<a.length;i++){
sum+=a[i]
}
return sum;
}