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();
}
}
- next()不能得到带有空格的字符串
-
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%50){
count++;
System.out.print(i+"\t");
}
if (count3){
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+"="+(mn)+"\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);
}
}
}