java流程控制
Scanner对象
-
基本语法
//从键盘接收数据 Scanner scanner=new Scanner(System.in); //判断用户是否输入 if(scanner.hasNext()){ //获取用户输入的参数 String s=scanner.next(); //打印用户输入的参数 System.out.println(s); } //凡是属于IO流,我们不关闭它,它会一直占用资源 scanner.close();
//从键盘接收数据 Scanner scanner=new Scanner(System.in); //判断用户是否输入 if(scanner.hasNextLine()){ //获取用户输入的参数 String s=scanner.nextLine(); //打印用户输入的参数 System.out.println(s); } //凡是属于IO流,我们不关闭它,它会一直占用资源 scanner.close();
-
next():
- 一定要读取到有效字符才能结束输出
- 对输入有效字符之前遇到的空白,next会自动会将其去掉
- 只会输入有效字符后才将其后面输入的空白当做分隔符或结束符。
- next()不能得到带有空格的字符串
-
nextLine():
- 已Enter为结束符,也就是说nextLine方法返回的是输入回车之前的所有字符
- 可获得空白
-
通过Scanner,处理输入多个数字,并且求其总数和平均数,每输入一个数用回车确认结束,通过输入非数字来结束输入并且执行结果
Scanner scanner=new Scanner(System.in);
//总数
double sum=0d;
//输入的个数
int i=0;
while(scanner.hasNextDouble()){
double num=scanner.nextDouble();
i++;
sum+=num;
}
System.out.println(“输入的总数为:”+sum+",平均数为:"+sum/i);
scanner.close();
## 顺序结构
1. java的基本结构就是顺序结构,除非特定指明,否则就会按照顺序一句一句的执行,
2. 语句与语句之间,框与框之间是按从上到下的循序执行的,他由若干个依次执行的处理步骤组成的,他是任何一个算法都离不开的一种基本算法结构
## 选择结构
- if单选择结构
我们很多时候需要去判断一个东西是否可行,然后我们再去执行,
```java
if(判断条件){
//符合条件执行
}
-
if双选择结构
例如,成绩大于60分及格,反之不及格
if(布尔表达式){ }else{ }
-
if多选择结构
例如,成绩小于60分差,大于60分小于80分良,大于80分优
if(布尔表达式1){ }else if (布尔表达式2){ }else{ }
-
if嵌套选择结构
例如,查询1-100中的一个数
if(布尔表达式){ if(布尔表达式1){ } }
-
switch多选择结构
-
多选择结构还有一个实现方式就是switch case语句。
-
Switch语句中变量类型可以是:
Byte,shrot,int,或者char
在java jdk 7 版本之后switch 支持字符串String类型
同时case标签必须为字符串常量或字面量
-
Switch匹配一个具体的值,如果匹配成功没有加break,会执行下面所有
-
Switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支
例如输入一个月份,判断这个月有多少天。
//字符串的本质还是数字 //反编译 java---class(字节码文件)---反编译(IDEA) //在匹配字符串的时候,他会去字符串的hashcode,去做比较 Scanner scanner=new Scanner(); int m=scanner.nextLine(); Switch(m){ case 1: System.out.println("这个月有31天"); break; case 2: System.out.println("这个月有30天"); break; case 3: System.out.println("这个月有31天"); break; //下面的省略.... default: System.out.println("您输入有误"); break; } scanner.close();
-
循环结构
- while循环
- do…while循环
- for循环
- 在java5中引入了一种主要用于数组的增强型for循环
while循环
-
while是最基本的循环,他的结构为
while(表达式){ //循环体 }
-
只要布尔表达式为true就会一直循环下去
-
我们大多数情况是会让循环停下来,我们只需要让表达式失效的方式来结束循环
-
少数情况让他一直循环,例如服务器的请求响应监听等
-
循环一直为true就会造成无限循环(死循环),我们正常的业务编程中尽量避免死循环。会影响程序性能,或者造成程序卡死崩溃。
do…while循环
-
对于while语句而言,不满足条件,则不能进入循环,但有时候我们需要即使不满足条件,也至少执行一次
-
do…while循环和while循环相似,不同的是,do…while新婚换至少执行一次
do{ //循环体 }while(布尔表达式);
-
while和do-while的区别:
- while选判断后执行,do…while先执行后判断!
- Do…while总是保证循环体会被至少执行一次!这是他们的主要差别
for循环
-
for循环语句是支持迭代的一种通用结构,是最有效最灵活的循环结构
-
for循环语法格式
for(初始化;布尔表达式;更新){ //循环体 }
增强for循环
-
java5引入的一种主要用于数组和集合的增强型for循环
-
增强for循环语法格式:
for(声明语句:表达式){ 循环体 }
break和continue
-
break在任何循环语句的主体部分,均可用break控制循环的流程,break用于强行退出循环,不执行循环中剩余的语句。(break语句也可以在switch中使用)
-
continue语句永在循环语句体重,用于终止某次循环过程,及跳过循环中尚未执行的语句,接着进行下一次是否执行循环的判定