- 用户交互Scanner
Scanner s =new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine ()判断是否还有输入的数据。
public static void main(String[] args) {
//创建一个扫描器,用于接受键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if (scanner.hasNext()) {
//接受用户的输入
String str = scanner.next();
System.out.println("输入的是:" + str);
}
//关闭;凡是属于IO流的类如果不关闭会一直占用资源。
scanner.close();
}
Next和nextLine区别:
Next():
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
- 只有输入有效字符后才将其后面输入的空白作为分割符或者结束符
- next()不能得到带有空格的字符串
nextLine():
- 以Enter为结束符,也就是说nextLine()方法返回的输入回车之前的所有字符。
- 可以获得空白
2.顺序结构
它是任何一个算法都离不开的一种基本算法结构。
- 选择结构
- If单选择结构
- If双选择结构
- If多选择结构
if(布尔表达式 1){
//如果布尔表达式 1 的值为true执行代码
}else if (布尔表达式 2){
/如果布尔表达式 2 的值为true执行代码
}else if (布尔表达式 3){
/如果布尔表达式 3 的值为true执行代码
}else{
//如果以上布尔表达式都不为true执行代码
}
If语句至多有一个else语句,else语句在所有的else if语句之后
If语句可以有若干个else if语句,必须在else语句之前
一旦其中一个else if 语句检测为true,其他的else if以及else 语句都将跳过执行
- 嵌套的if结构
if(布尔表达式 1){
//如果布尔表达式 1 的值为true执行代码
if(布尔表达式 2){
//如果布尔表达式 2 的值为true执行代码
}
}
- Switch多选择结构
switch (expression) {
case value:
//语句
break;
case value:
//语句
break;
default:
//语句
}
- 循环结构
- while循环
while (布尔表达式) {
//循环内容
}
- do…while循环
do{
//代码语句
}while (布尔表达式){
}
while和do…while区别:
while先判断后执行,do…while先执行后判断
do…while循环至少会执行一次
- for循环
for (初始化;布尔表达式;更新){
//代码语句
}
//练习3:打印乘法表
for (int i = 1; i < 10; i++) {
for (int j = 1; i >= j; j++) {
System.out.print(i + "*" + j + "=" + (i * j) + '\t');
}
System.out.println();
}
增强for循环:
Java5引入了一种主要用于数组或集合的增强for循环
for (声明语句:表达式){
//代码语句
}
主要用于数组或集合增强for循环
int[] n = {10, 20, 30, 40, 50, 60};
for (int i : n) {
System.out.print(i + "\t");
}
- Break&continue
Break用于强制退出循环,但没有终止程序,break也在switch语句中使用;
Continue终止某次循环,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
- 练习
//打印三角形
for (int i = 1; i <= 5; i++) {
for (int j = 5; j >= i; j--) {
System.out.print(" ");
}
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
for (int j = 1; j < i; j++) {
System.out.print("*");
}
System.out.println();
}