Scanner对象
-
基本语法
Scanner s=new Scaneer(System.in);
-
通过Scanner类的next()与nextLine方法获取输入的字符串,在判断前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
-
next():
-
一定要读取到有效字符后才可以结束输入。
-
对输入有效字符之前遇到的空白,next()方法会自动将其去掉
-
只有输入游侠字符后才将其后面输入的空白走位分隔符或者结束符。
-
next()不能得到带有空格的字符串
-
import java.util.Scanner; public class Test1 { 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); scanner.close(); } } }
-
-
nextLine():
-
以Enter为结束符也就是说nextLine()方法返回的键是输入回车之前的所有字符。
-
可以获得空白。
-
import java.util.Scanner; public class Test2 { public static void main(String[] args) { //创建一个扫描器对象,用于接受键盘数据 Scanner scanner = new Scanner(System.in); System.out.println("使用nextLine方式接受:"); //判断用户有没有输入字符串 if(scanner.hasNext()){ //使用next方式接受 String str=scanner.nextLine();//程序会等待用户输入完毕 System.out.println("输出的内容为:"+str); } scanner.close(); } }
-
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
/*我们可以输入多个数字,并求其总和与平均数,没输入一个数字用回车确认,
通过输入非数字来结束输入并输出执行结果*/
Scanner scanner=new Scanner(System.in);
double sum=0;
int m=0;
//通过循环判断是否还有输入,并在里面对每一次进行求和统计
while (scanner.hasNextDouble()){
double x=scanner.nextDouble();
m++;
sum=sum + x;
System.out.println("你输入了第"+m+"个数据,结果是sum="+sum);
}
System.out.println(m+"个数的和为"+sum);
System.out.println(m+"个数的平均数为"+sum/m);
scanner.close();
}
}
例题
import java.util.Scanner;
public class Test4 {
public static void main(String[] args) {
/*我们可以输入多个数字,并求其总和与平均数,没输入一个数字用回车确认,
通过输入非数字来结束输入并输出执行结果*/
Scanner scanner=new Scanner(System.in);
double sum=0;
int m=0;
//通过循环判断是否还有输入,并在里面对每一次进行求和统计
while (scanner.hasNextDouble()){
double x=scanner.nextDouble();
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语句来表示
-
语法:
import java.util.Scanner; public class Test5 { public static void main(String[] args) { Scanner scanner=new Scanner(System.in); System.out.println("请输入内容"); String s=scanner.nextLine(); //equals:判断字符串是否相等 if(s.equals("hello")){ System.out.println("End"); } scanner.close(); } }
-
-
if双选择结构
-
那现在有个需求,公司要收购一个软件,成功了,给人支付100万元,失败了,自己找人开发,这样的需求同一个用一个if就搞不定了,我们需要有两个判断,需要一个双选择结构,所以就有了if-else语句
-
import java.util.Scanner; public class Test5 { public static void main(String[] args) { //考试分数大于60就是及格,小于60就不及格。 Scanner scanner=new Scanner(System.in); System.out.println("请输入成绩"); int score=scanner.nextInt(); if(score>60){ System.out.println("及格"); }else{ System.out.println("不及格"); } scanner.close(); } }
-
-
if多选择结构
语法:
import java.util.Scanner; public class Test5 { public static void main(String[] args) { //考试分数大于60就是及格,小于60就不及格。 Scanner scanner=new Scanner(System.in); System.out.println("请输入成绩"); int score=scanner.nextInt(); if(score==100){ System.out.println("恭喜满分"); }else if (score<100&&score>=90){ System.out.println("A级"); }else if (score<90&&score>=80){ System.out.println("B级"); }else if (score<80&&score>=70){ System.out.println("C级"); }else if (score<70&&score>=60){ System.out.println("D级"); }else if (score<60){ System.out.println("不及格"); }else { System.out.println("成绩不合法12"); } scanner.close(); } }
-
嵌套的if结构
语法:
import java.util.Scanner; public class Test6 { public static void main(String[] args) { //例题:输入一个1-100的数字,请寻找它并输出 Scanner scanner=new Scanner(System.in); System.out.println("请输入数字"); int a=1; int x=scanner.nextInt(); while (a<100) { if (a==x) { System.out.println("输出的结果为"+x); a=100; } else { a++; } } scanner.close(); } }
if(布尔表达式 1){ //如果布尔表达式1的值为true执行代码 if(布尔表达式 2){ //如果比尔表达式2的值为true执行代码 } }
-
switch多选择结构
语法:
switch(expression){
case value:
//语句
break;
case value:
//语句
break;
//你可以有任意数量的case语句
default://可选
//语句
}
例题:
public class Test1 {
public static void main(String[] args) {
char grade='d';
switch (grade){
case 'a':
System.out.println("优秀");
break;
case 'b':
System.out.println("良好");
break;
case 'c':
System.out.println("及格");
break;
case 'd':
System.out.println("再接再厉");
break;
case 'e':
System.out.println("挂科");
break;
default:
System.out.println("未知等级");
}
}
}