Java流程控制
Scanner
-
通过Scanner类来获取用户的输入
next()与nextLine()的方法来获取输入的字符串
hasNext()与hasNextLine()判断是否还有输入的数据
-
next():
-
一定要读取到字符才可与结束输入
2. 以空白为结束符
3. next()不能的得到带有空白的字符串
-
nextLine:
-
以回车为结束符;返回的是输入回车前的所有字符
-
可以获得空白的字符串
package scanner;
import java.util.Scanner;
public class Demo1 {
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();
}
}package scanner;
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
//接受键盘输入数据
Scanner scanner = new Scanner(System.in);
System.out.println("使用nextLine方式接收");
//判断是否输入
if (scanner.hasNextLine()) {
//使用nextLine的方式来接受
String str = scanner.nextLine();//程序会等待输入完毕
System.out.println("输出内容为" + str);
}
//对于IO流 用了要即使关闭,占资源
scanner.close();
}
}
-
-
其他用法
package scanner;
import java.util.Scanner;
public class Demo3 {
public static void main(String[] args) {
//接受数据
Scanner scanner = new Scanner(System.in);
//定义初始值
int i = 0;
float o = 0.0F;
System.out.println("请输入整数");//提示语
//判断是否输入的整数 后面加了int
if(scanner.hasNextInt()) {
i = scanner.nextInt();//等待输入整数
System.out.println("整数数据:" + i);
}else {//输入的不是整数则输出这个
System.out.println("你输入的不是整数!");
}
System.out.println("请输入小数数据");//提示语
//判断是否输入的是小数
if(scanner.hasNextFloat()) {
o = scanner.nextFloat();//等待输入
System.out.println("小数数据:" + o);//正确情况
}else{//错误情况
System.out.println("你输入的不是小数数据");
}
//用的IO流,用完关闭
scanner.close();
}
}
package scanner;
import java.util.Scanner;
public class Demo4 {
public static void main(String[] args) {
//引入类用于接受数据
Scanner a = new Scanner(System.in);
//定于初始值
double b = 0;
int c = 0;
System.out.println("请输入数据");//提示语
//循环语句输入的不是数字则会结束 因后面我加了double
while(a.hasNextDouble()){
double d = a.nextDouble();//等待输入
c = c+1;//每输入一次都会循环一次就会+1
b = b+d;//同理
System.out.println("你输入了第"+c+"数,"+"当前结果sum="+b);//每输入完用于提示
}
//最后直到我结束上面的循环才会输入这个
System.out.println(c+"个数的和为"+b);
System.out.println(c+"个数的平均值"+(b/c));
//用IO流,最后要关闭
a.close();
}
}
顺序结构
-
依次执行 基本算法结构
选择结构
if
-
单选择结构 equals :判断字符串是否相等
package struct;
import java.util.Scanner;
public class Ifemo1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入输入内容");
String s = sc.nextLine();
//equals:判断字符串是否相同
if(s.equals("Hello")){
System.out.println(s);
}
System.out.println("End");
sc.close();
}
}
-
双选择结构
package struct;
import java.util.Scanner;
public class IfDemo2 {
public static void main(String[] args) {
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();
}
}
-
多选择结构
package struct;
import java.util.Scanner;
public class IfDemo4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("输入");
int a = scanner.nextInt();
if (a == 100){
System.out.println("满分");
}else if (a >= 90 && a <100){
System.out.println("优秀");
}else if (a >=0 && a < 90){
System.out.println("垃圾");
}else{
System.out.println("不合法");
}
scanner.close();
}
}
Switch
-
基本结构:
![]()
-
匹配一个具体的值
-
case 穿透现象
-
break 打断case穿透
package struct;
public class SwitchDemo1 {
public static void main(String[] args) {
String name = "薛";
//switch:匹配一个具体的值
switch(name){
//case:定义内容 但具有穿透行性
case"张":
//如果值和内容相等,则输出
System.out.println("张");
//break:打断case的穿透
break;
case"薛":
System.out.println("薛");
break;
//如果都没有,则
default:
System.out.println("无此人");
}
}
}
循环结构
while
-
基本结构 while(布尔表达式){ }
-
只要布尔吧表达式为ture,循环就会一直执行
-
避免死循环
-
先判断后执行
package struct;
public class WhileDemo1 {
public static void main(String[] args) {
//定义起始值
int q = 0;
//循环到50停止
while (q<50){
q = ++q;
//每次循环到最后输出值
System.out.println(q);
}
}
}
package struct;
public class WhileDemo2 {
public static void main(String[] args) {
//1+到100的和
//定义初始值
int a = 0;
int sum = 0;
//循环a到100停止
while(a<=100){
sum = sum+a;
a++;
}
System.out.println(sum);
}
}
do while
-
基本结构:do{
代码语句
}while(布尔表达式);
-
先执行后判断
package struct;
public class DoWhileDemo1 {
public static void main(String[] args) {
//定义起始值
int a = 1;
//while 先判断后执行
while(a<1){
System.out.println(a);
a++;
}
System.out.println("=================================");
//do while 先执行后判断
do{
System.out.println(a);
a++;
}while(a<1);
}
}
For循环
-
基本结构:
![]()
package struct;
public class ForDemo1 {
public static void main(String[] args) {
//初始值——条件判断——更新
for (int i = 0; i < 100; i++) {
System.out.println(i);
}
}
}
增强for循环
-
主要用于数组
-
基本结构
![]()
package struct;
public class ForDemo5 {
public static void main(String[] args) {
//定义数组
int[] numbers = {10,20,30,40,50};
for (int a = 0; a < 5; a++ ){
System.out.println(numbers[a]);
}
System.out.println("=================");
//遍历数值元素
for(int x:numbers){
System.out.println(x);
}
}
}
break与continue
-
break:强制退出循环
-
-
package struct;
public class BrerakDemo1 {
public static void main(String[] args) {
//break 强制停止并退出
int a = 0;
while(a<50){
a++;
if(a == 20){
break;
}
System.out.println(a);
}
}
}
package struct;
public class ContinueDemo {
public static void main(String[] args) {
//continue 终止某一次循环
int a = 0;
while(a<50){
a++;
if (a%10==0){
System.out.println();
continue;
}
System.out.print(a);
}
}
}




浙公网安备 33010602011771号