Scanner对象
next():
-
一定要读取到有效字符后才能可以结束输入。
-
对输入有效字符之前遇到的空白,next()方法会自动将其自动过滤掉 例如hello word 只输出hello。
-
只有输入有效字符后才能将其后面输入空白的作为分隔符或结束符。
-
next()方法不能得到带有字符的字符串。
import java.util.Scanner; public class Dome01 { public static void main(String[] args) { //输入一个扫描器对象,用于接收键盘数据 Scanner scanner=new Scanner(System.in); System.out.println("使用next方式接收"); //判断用户有没有输入字符串 if(scanner.hasNext()){ //使用next方式接收 String str = scanner.next(); System.out.println("输出的内容为:"+str); } //凡是属于IO流的类如果不关闭会一直占用资源,要养成好习惯用完关闭 scanner.close(); } } //输出hello
nextLine():
-
以Enter为结束符 也就是说nextLine()方法返回的是输入回车之前的所有的字符。
-
可以获得空白。
import java.util.Scanner; public class Dome02 { public static void main(String[] args) { //从接盘接收数据 Scanner scanner=new Scanner(System.in); System.out.println("使用nextLine方式接收:"); //判断是否还有输入 if(scanner.hasNextLine()){ String str=scanner.nextLine(); System.out.println("输出的内容为:"+str); } scanner.close(); } } //输出 hello word
import java.util.Scanner; public class Demo03 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入数据"); String str =scanner.nextLine(); System.out.println("输出内容为:"+str); scanner.close();?? } }
面试案例:我们可以输入多个数字,并求其总和与平均数,没输入一个数字用回车确定,通过输入非数字来结束输入并输出执行结果;
package com.jiang.base.scanner; import java.util.Scanner; public class Dome05 { public static void main(String[] args) { Scanner scanner= new Scanner(System.in); double sum=0; int m=0; System.out.println("请输入数据"); while(scanner.hasNextDouble()){ double x=scanner.nextDouble(); m=m+1; sum=sum+x; } System.out.println(m+"个数的和为"+sum); System.out.println(m+"个数的平均数"+sum/m); scanner.close(); } }
选择结构
if单选择结构
if(布尔表达式){ //如果布尔表达式为true将执行的语句 }
if双选择结构
if(布尔表达式){ //如果布尔表达式的值为true }else { //如果布尔表达式的值为false }
if多选择结构
if(布尔值表达式1){ //如果表达式1的值为true执行代码 }else if(布尔值表达式2){ //如果表达式2的值为true执行代码 }else if(布尔值表达式3){ //如果表达式3的值为true执行代码 }else if(布尔值表达式4){ //如果表达式4的值为true执行代码 }else{ //如果表达式5的值为true执行代码 }
switch多选择结构
匹配具体的一个值
char grade='a' switch(grade ){ case'a': System.out.println("优秀"); break; case'b': System.out.println("良好"); break; case'c': System.out.println("及格"); break; default: System.out.println("挂科"); }
循环结构
-
while循环
//例题1:输出1~100 int i=0; while(i<100){ i++; System.out.println(i); } //例题2:1+2+3...+100 int i=0; int sum=0; while(i<=100){ sum=sum+1; i++; Stytem.out.println(sum); }
-
do...while
int i=0; int sum=0; do{ sum=sum+i; i++; }while(i<=100); System.out.println(sum);
-
for循环
for(初始值;布尔值;迭代) //例题1:打印1到100 //快捷键 100.for+Enter for(int i=1;i<=100;i++){ System.out.println(i); } //例题2:计算0到100之间的奇数和偶数的和 int oldSum=0; int evenSum=0; for (int i = 0; i <= 100; i++) { if(i%2!=0){ oldSum+=i; }else{ evenSum+=i; } } System.out.println("奇数的和为"+oldSum); System.out.println("偶数的和为"+evenSum);