Scanner对象
基本语法
Scanner scanner=new Scanner(System.in);
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
-
next()方法:
- next()不能得到带有空格的字符串
package com.baidu.scanner; import java.util.Scanner; public class Demo01 { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("使用next方式接收:"); //使用next()方式接收 String str1=scanner.next(); System.out.println("输出内容为:"+str1); scanner.close(); } }
-
nextLine()方法:
- 以Enter结束符,也就是说next Line()方法返回的是输入回车之前的所有字符;
- 可以获得空白;
package com.baidu.scanner; import java.util.Scanner; public class Demo02 { public static void main(String[] args) { //创建一个扫描器对象,用于接收键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("使用nesxtline()方法接收:"); //使用nextLine()方式接收 String str2=scanner.nextLine(); System.out.println("输出内容为:"+str2); scanner.close(); } }
举一个栗子
输入多个数字 并求其和与平均数 通过非数字来结束输入并执行输出结果。
package com.baidu.scanner;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
//输入多个数字 并求其和与平均数 通过非数字来结束输入并执行输出结果
Scanner scanner = new Scanner(System.in);
double sum=0;
int count=0;
System.out.println("输入数据");
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
sum+=x;
count++;
System.out.println("你输入了第"+count+"个数据,当前结果是sum="+sum);
}
System.out.println(count+"个数字总和为"+sum);
System.out.println(count+"个数字平均数为"+(sum/count));
scanner.close();
}
}
顺序结构
- Java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
- 语句与语句之间是按从上到下的顺序进行的,它是任何一个算法都离不开的一种基本结构。
选择结构
if单选择结构
if(条件1){
```
}
if双选择结构
if(条件1){
```
}else{
```
}
if多选择结构
if(条件1){
```
}else if(条件2){
```
}else if(条件3){
````
}else{
```
}
Switch结构
switch case语句中的变量类型可以是:
- byte,short,int或者char;
- **从JavaSE 7开始 switch支持字符串String类型了;
- 同时case标签必须为字符串常量或者自变量 ;
switch(experssion){
case value1:
//语句
break;//可选
case value2:
//语句
break;//可选
default://可选
//语句
}
循环结构
while循环
while(条件){
//循环体
}
do while循环(至少执行一次)
do{
//循环体
}while(条件);
For循环
for(初始化; 布尔表达式; 更新){
//循环体
}
三个栗子
-
输出1-1000之间能被5整除的数 且每行输出3个
package com.baidu.scanner; //输出1-1000之间能被5整除的数 且每行输出3个 public class Demo06 { public static void main(String[] args) { int count=0; for (int i=1;i<=1000;i++){ if (i%5==0){ count++; System.out.print(i+"\t"); } if (count==3){ System.out.println(); count=0; } } } } -
打印九九乘法表
package com.baidu.scanner; //打印九九乘法表 public class Demo07 { public static void main(String[] args) { for (int m = 1; m <=9; m++) { for (int n = 1; n <=9; n++) { if (n<=m){ System.out.print(n+"*"+m+"="+(m*n)+"\t"); } } System.out.println(); } } } -
打印三角形
package com.baidu.scanner; public class Demo10 { public static void main(String[] args) { 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(); } } }
增强for循环
这里先见一面 举个栗子:
package com.baidu.scanner;
public class Demo08 {
public static void main(String[] args) {
int numbers[]={1,2,3,4,5};//定义了一个数组
//遍历数组的元素
for (int x:numbers){
System.out.println(x);
}
}
}
\