输入,选择,while循环
用户交互Scanner
-
之前我们学的基本语法中我们并没有实现程序和人的交互,但是Java给我们提供了这样一个工具类,我们可以获取用户的输入。java.util.Scanner是 Java5的新特征,我们可以通过Scanner类来获取用户的输入。
-
基本语法:
scanner s = new Scanner(System.in); -
通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数据。
import java.util.Scanner;
public class Day622 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);//创建一个扫描器对象,用于接收键盘数据
System.out.println("使用next方式接收:");
//判断用户有没有输入字符串
if(scanner.hasNext()){
String str= scanner.next();//使用next接收
System.out.println("输出的内容为:"+str);
}
//凡是属于IO流的类,如果不关闭会一直占用资源,要及时关闭
scanner.close();
}
}
next():
1、一定要读取到有效字符后才可以结束输入。
2、对输入有效字符之前遇到的空白,next()方法会自动将其去掉。3、只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符。
4、next()不能得到带有空格的字符串。
nextLine():
1、以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符。
2、可以获得空白。
输入整数与小数
import java.util.Scanner;
public class Day62203 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);//扫描输入放置于scanner中
int i=0;
float f=0.0f;
System.out.println("请输入整数:");//别忘
if(scanner.hasNextInt()){
i = scanner.nextInt();//前面已经创建i,所以这里的i前面不需要加int
System.out.println("整数数据:"+i);
}
else{
System.out.println("你输入的不是整数!");
}
System.out.println("请输入小数:");
if(scanner.hasNextFloat()){
f = scanner.nextFloat();
System.out.println("整数数据:"+f);
}
else{
System.out.println("你输入的不是小数!");
}
scanner.close();//在创建scanner之后先写,不然容易忘
}
}
通过循环判断是否还有输入,并在里面对每一次进行求和和统计
public class Day62204 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入");
//多个数字求和,非数字结束
double sum=0;
int m=0;
//通过循环判断是否还有输入,并在里面对每一次进行求和和统计
while (scanner.hasNextDouble()){
double x = scanner.nextDouble();
m=m+1;
sum=sum+x;
System.out.println("你输入了第"+m+"个数据,当前和为"+sum);
}
System.out.println("m的个数为"+m);
System.out.println(m+"个数的和为"+sum);//变量+字符+变量
System.out.println(m+"个数的平均值为"+(sum/m));
scanner.close();
}
}
顺序结构
- JAVA的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。
- 顺序结构是最简单的算法结构。
- 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构。
选择结构
if单选择结构
我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过程在程序中用if语句来表示
- 语法:
if(布尔表达式){
/如果布尔表达式为true将执行的语句}
if双选择结构
- 语法:
if(布尔表达式){
//如果布尔表达式的值为true}else{
//如果布尔表达式的值为false}
public class Day62200 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入");
String s = scanner.nextLine();
//判断字符串是否相等
if (s.equals("Hello")){
System.out.println(s);
}//else //有else则与if2选1,没有则必定输出end
System.out.println("end");
scanner.close();
}
}
if多选择结构
-
语法:
if(布尔表达式1){
//如果布尔表达式1的值为true执行代码}else if(布尔表达式2){
//如果布尔表达式2的值为true执行代码}else if(布尔表达式 3){
1/如果布尔表达式3的值为true执行代码}else {
//如果以上布尔表达式都不为true执行代码)}
-
if语句至多有1 个else语句,else 语句在所有的else if 语句之后。
-
if语句可以有若干个 else if语句,它们必须在else语句之前。
-
一旦其中一个else if 语句检测为true,其他的else if以及else 语句都将跳过执行。
public class Day62201 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入成绩:");
int score = scanner.nextInt();
if(score==100){
System.out.println("恭喜满分");
} else if (score>=80&&score<100) {
System.out.println("优秀");
}else if (score>=60&&score<80) {
System.out.println("良好");
}else if (score>=0&&score<60) {
System.out.println("不及格");
} else
System.out.println("输入错误");
scanner.close();
}
}
嵌套的if结构
使用嵌套的if...else语句是合法的。也就是说你可以在另一个if或者else if 语句中使用if 或者else if 语句。你可以像if语句一样嵌套else if...else。
-
语法:
if(布尔表达式1){
//如果布尔表达式1的值为true执行代码 if(布尔表达式2){
//如果布尔表达式2的值为true执行代码}
}}
switch多选择结构
- 多选择结构还有一个实现方式就是switch case语句。
- switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
- switch语句中的变量类型可以是:
- byte、short、int或者char。
- 从Java SE 7开始
- switch支持字符串 String类型了
- 同时case标签必须为字符串常量或字面量。
switch( expression){
case value :
//语句
break;//可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
输入char,通过switch选择
public class Day62203 {
public static void main(String[] args) {
Scanner grade = new Scanner(System.in);
System.out.println("请输入成绩:");
char g =grade.next().charAt(0) ;//输入char值,其中0代表grade的第一个字符
switch (g){
case'A':
System.out.println("优秀");
break;
case'B':
System.out.println("良好"); break;
case'C':
System.out.println("菜"); break;
default:
System.out.println("未知量"); break;
}
grade.close();
}
}
switch中string型
public class Day62204 {
public static void main(String[] args) {
String name="1";
switch(name){
case "青":
System.out.println("青");
break;
case"狂":
System.out.println("狂");
break;
default:
System.out.println("错误");
}
}
}
switch中int型
public static void main(String[] args) {
int name=1;
switch(name){
case 1:
System.out.println("青");
break;
case 2:
System.out.println("狂");
break;
default:
System.out.println("错误");
}
}
循环结构
while循环
-
while是最基本的循环,它的结构为:
- while(布尔表达式) {
//循环内容
}
- while(布尔表达式) {
-
只要布尔表达式为true,循环就会一直执行下去。
-
我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。
-
少部分情况需要循环一直执行,比如服务器的请求响应监听等。
-
循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死奔溃!
计算1+2+3+...+100
public class Day622While1 {
public static void main(String[] args) {
//计算1+2+3+...+100
int i=0;
int sum=0;
while(i<100){
i++;
sum=sum+i;
}
System.out.println(sum);
}
}
do...while循环
- 对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条也至少执行一次。
- do...while循环和while循环相似,不同的是,do...while循环至少会执行一次。
-
- do {
//代码语句
}while(布尔表达式);
- do {
While和do-While的区别:
while先判断后执行。dowhile是先执行后判断!
Do...while总是保证循环体会被至少执行一次!这是他们的主要差别。
public class Day622DoWhile1 {
public static void main(String[] args) {
int a=0;
while (a<0){
System.out.println(a);
a++;
}//
System.out.println("------------------");
do {
System.out.println(a);
a++;
}while (a<0);//0
}
}
标签:语句,scanner,System,else,while,循环,println,输入,out
From: https://www.cnblogs.com/xin-zhi-suo-xiang/p/17498417.html