Scanner对象
Scanner类获取用户的输入
基本语法
Scanner scanner = new Scanner(System.in);
通过 Scanner 类的 next()与 nextLine()方法获取输入的字符串,在读取前我们一般需要 使用 hasNext()与 hasNextLine()判断是否还有输入的数据。
has方法初始默认值为“True”,能正常通过 if 判断,由例子进行深入理解。
next() 和 nextLine()
next():
- 一定要读取到有效字符后才可以结束输入
- 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
- 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
- next()不能得到带有空格的字符串,
nextLine():
- 以Enter为结束符,也就是说 nextLine()方法返回的是输入回车之前的所有字符。
- 可以获得空白。
//创建一个扫描器对象,用于接收键盘数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if(scanner.hasNext()){
//使用next方式接收
String str = scanner.next();//程序会等待用户输入完毕
System.out.println("输出的内容为:"+str);
}
//凡是属于I0流的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
scanner.close();
例子()
输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:
//输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果:
Scanner scanner =new Scanner(System.in);//和
double sum =0;//计算输入的数字合
int m= 0;//记录输入数字个数
//通过循环判断是否还有输入,并在里面对每一次进行求和和统计
while(scanner.hasNextInt()){
int x=scanner.nextInt();
m=m+1;//m++
sum=sum+x;
System.out.println("你输入了第"+m+"个数据,当前结果sum="+sum);
}
System.out.println(m+"个数的和为"+sum);
System.out.println(m+"个数的平均值为"+(sum / m));
scanner.close();
//其中,只要输入的数字不是整数,则会退出循环
顺序结构
顺序结构是Java最基本的结构,除非特别指明,否则就按照顺序一句一句执行。
选择结构
-
if 单选择结构
if( 条件 ){ ; }
-
if 双选择结构
if( 条件 ){ ; }else{ ; }
-
if 多选择结构
if( 条件 ){ ; }else if( 条件 ){ ; }else if( 条件 ){ ; }else{ ; }
if 语句至多有1个else 语句,else 语句在所有的 else if 语句之后if 语句可以有若干个 else if 语句,它们必须在 else 语句之前。一旦其中一个 else if 语句检测为 true,其他的 else if 以及 else 语句都将跳过执行
-
if 嵌套选择结构
if( 条件 ){ if( 条件 ){ ; } }
-
switch多选择结构
switch(expression){ case value ://语句 break;//可选 case value ://语句 break;//可选 //可以有任意数量的case语句 default ://可选//语句 } //case的语句中没有break可能会出现穿透现象
switch 语句中的变量类型可以是:
byte、short、int 或者 char。
从 Java SE 7 开始switch 支持字符串String 类型了
同时 case 标签必须为字符串常量或字面量
循环结构
while循环
while( 布尔表达式 ){ //循环内容 }
int n = 1;
int sum = 0;
while( n <= 100 ){
sum += n;
n++;
}
System.out.println( sum );
do...while循环
do{ //循环内容 }( 布尔表达式 );
int n = 1;
while( n < 0 ){
System.out.println( "while执行" );
}
do{
System.out.println( "do...while执行" );
}while( n < 0 );
[!NOTE]
while 和 do...while 区别:do...while至少先执行一次
for循环
for( 初始化; 布尔表达式; 更新 ){ //循环语句 }
for(int i=1;i<=10;i++){
if( i%2 == 1 ){
System.out.println( i + "是奇数" );
}else{
System.out.println( i + "是偶数" );
}
}
增强for循环
jdk5增加了主要用于数组或集合的增强型for循环
for( 声明语句: 表达式 ){ //循环语句 }
int[] numbers = {10,20,30,40,50};//定义了一个数组
for(int x:numbers){
System.out.println(x);
}
break continue
continue 停止本次循环,进入下一次循环
break 退出整个循环,执行下一个语句
goto 关键字
跳转到“标签”语句
//不建议使用!
outer:for(int i=101;i<150;i++){
for(int j=2;j<i/2;j++){
if(i % j == 0){
continue outer;
}
}
System.out.print(i+" ");
}
九九乘法表
for(int j=1;j<= 9; j++){
for(int i =1;i<= j; i++){
System.out.print(j+"*"+i+"="+(j*i)+"\t");
}
System.out.println();
}
标签:语句,控制,JAVA,int,流程,System,else,while,输入
From: https://www.cnblogs.com/CLB-BB/p/18313280