第三天学习Scanner及循环控制结构
Scanner及循环控制结构
Scanner对象
Scanner s1 = new Scanner(System.in);
if (s1.hasNext()) { //hsaNext()表示还有没有下一个
String str = s1.next(); //通过next()来接收用户输入的字符串
}
s1.close(); //IO流类,用完就关
//---------------------------------------------------------------------------------------
Scanner s2 = new Scanner(System.in);
if (s2.hasNextLine()) { //hsaNextLine()表示判断是否还有输入
String str = s2.nextLine(); //通过nextLine()来接收用户输入的字符串
}
s2.close(); //IO流类,用完就关
-
Scanner提供的方法
- 输入String类型next()、nextLine()
- 输入数字类型nextInt()、nextFloat()...
-
next():
- 读取到有效字符之后才可以结束输入。
- 输入有效字符前遇到的空白,next()方法会自动将其去掉。
- 输入有效字符之后,后面遇到的空白作为分隔符或结束符(不输入)。
- next()不能得到带有空格的字符串。
-
nextLine():
- 以Enter为结束符。
- 可以得到空白。
switch分支选择
- 可接收的变量类型byte、short、int、char、String。
- case标签必须为字符串常量或字面量。
char grade = 'A';
//switch 匹配一个具体值
switch (grade){
case 'A':
System.out.println("优秀");
break;//可选,没有break;的话就直接后面的case全部执行(case穿透)
case'B':
System.out.println("良好");
break;
case'C':
System.out.println("及格");
break;
default:
System.out.println("完了你挂了");
}
// String类型是java编译成class文件后根据字符串的hashCode识别的
循环结构
//增强for循环,foreach
for(int x:number){
System.out.println(x);
}
//int为遍历后得到的元素的类型,X为得到后的元素名,number为集合名
/*
* 99乘法表
* 1 先使用一个循环打印第一列
* 2 在循环里套一层循环
* 3 修改内层循环条件,去除重复
* 4 修改格式
* */
for (int i = 1;i <= 9;i++){
for (int j = 1;j<=i;j++){
System.out.print(j+"*"+i+"="+(j*i)+" ");
}
System.out.println();
}
/*
* 打印三角形
*/
for (int i = 1; i <= 5; i++) { //一共打印5行
for (int j = 5; j >= i; j--) { //控制三角左边的空白处
System.out.print("1");
}
for (int j = 1; j <= i; j++) { //打印三角的左半边
System.out.println("左三角的i:" + i);
System.out.print("*");
}
for (int j = 1; j < i; j++) { //第二行开始打印三角的右半边
System.out.println("右三角的i:" + i);
System.out.print("x");
}
System.out.println();
}
break和continue
- break:强行退出循环。循环中遇到if中的break;会直接退出循环。
- continue:终止某次循环。循环中遇到if中的continue;会退出if继续循环。
- break和continue可返回至标签处。