首页 > 技术文章 > Java03流程控制

mingmao 2021-09-05 18:21 原文

Java03流程控制

image

Scanner

image

package com.mingmao.javaflowcontrol;

//导入Scanner包
import java.util.Scanner;

public class ScannerTest {
    public static void main(String[] args) {
        //方法一:next
        //创建Scanner对象
        Scanner scanner=new Scanner(System.in);

        System.out.println("使用next方式接收:");
        //判断用户有没有输入字符串
        if(scanner.hasNext()){
            //使用next方式接收用户输入
            String str=scanner.next();
            System.out.println("输入的内容为:"+str);
        }

        //用完scanner就要关闭掉
        //凡是属于IO流的类如果不关闭就会一直占用资源
        //scanner.close();

        //方法二:nextLine
        //创建Scanner对象
        Scanner scanner1=new Scanner(System.in);

        System.out.println("使用nextLine方式接收:");
        //判断用户有没有输入字符串
        if(scanner1.hasNextLine()){
            //使用nextLine方式接收用户输入
            String str=scanner1.nextLine();
            System.out.println("输入的内容为:"+str);
        }

        //用完scanner1就要关闭掉
        //凡是属于IO流的类如果不关闭就会一直占用资源
       // scanner.close();
        //scanner1.close();

        //不使用if判断
        Scanner scanner3=new Scanner(System.in);

        System.out.println("请输入内容:");
        String str2=scanner3.nextLine();
        System.out.println("输入的内容为:"+str2);

        scanner3.close();
        scanner.close();
        scanner1.close();

    }
}

image

image

Scanner进阶

package com.mingmao.javaflowcontrol;

//导入Scanner包
import java.util.Scanner;

public class ScannerTest {
    public static void main(String[] args) {
        //Scanner进阶
        Scanner scanner4 = new Scanner(System.in);

        int i = 0;
        float f = 0.0f;

        //输出整数
        System.out.println("请输入一个整数");

        if (scanner4.hasNextInt()) {
            i = scanner4.nextInt();
            System.out.println("整数数据:" + i);
        } else {
            System.out.println("您输入的不是整数");
        }

        //输出小数
        System.out.println("请输入一个小数:");

        if (scanner4.hasNextFloat()) {
            f = scanner4.nextFloat();
            System.out.println("小数数据:" + f);
        } else {
            System.out.println("您输入的不是小数");
        }

        /*
        scanner4.close();
        scanner3.close();
        scanner1.close();
        scanner.close();
         */

        //练习
        //我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认,通过输入非数字来结束并输出执行结果
        Scanner scanner5=new Scanner(System.in);

        System.out.println("请依次输入要参与计算的数字:");

        int num=0;
        double sum=0.0;

        while (scanner5.hasNextDouble()){
            double d=scanner5.nextDouble();
            num++;
            sum+=d;
        }

        System.out.println("总和为:"+sum);
        System.out.println("平均数为:"+sum/num);
    }
}



顺序结构

image




if选择结构

image

image

image

image

image

package com.mingmao.javaflowcontrol;

import java.util.Scanner;

public class IfStructure {
    public static void main(String[] args) {
        Scanner scanner= new Scanner(System.in);

        //if单选择结构
        System.out.println("请输入内容:");
        String str=scanner.nextLine();

        if (str.equals("hello")){
            System.out.println(str);
        }

        System.out.println("End");

        //if双选择结构
        Scanner scanner2=new Scanner(System.in);

        System.out.println("请输入考试成绩:");
        int score=scanner2.nextInt();

        if(score>=60){
            System.out.println("及格");
        }else{
            System.out.println("不及格");
        }

        //if多选择结构
        Scanner scanner3=new Scanner(System.in);

        System.out.println("请输入考试成绩:");
        int score2=scanner3.nextInt();

        if(score2==100){
            System.out.println("满分");
        }else if(score2<100 && score2>=90){
            System.out.println("A级");
        }else if(score2<90 && score2>=80){
            System.out.println("B级");
        }else if(score2<80 && score2>=70){
            System.out.println("C级");
        }else if(score2<70 && score2>=60){
            System.out.println("D级");
        }else if(score2<60 && score2>=0){
            System.out.println("不及格");
        }else{
            System.out.println("成绩不合法");
        }

        scanner.close();
        scanner2.close();
        scanner3.close();
    }
}




switch多选择结构

image

package com.mingmao.javaflowcontrol;

public class SwitchStructure {
    public static void main(String[] args) {
        //if判断一个区间,Switch判断一个具体的值

        //常规 输出 及格
        char grade='C';

        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;
            default:
                System.out.println("成绩不合法");
        }

        //case穿透 输出 及格 不及格 成绩不合法
        char grade1='C';

        switch (grade1){
            case 'A':
                System.out.println("优秀");
            case 'B':
                System.out.println("良好");
            case 'C':
                System.out.println("及格");
            case 'D':
                System.out.println("不及格");
            default:
                System.out.println("成绩不合法");
        }

        //JDK7之后,支持String
        String name="明懋";

        switch (name){
            case "明懋":
                System.out.println("明懋");
                break;
            case "mingmao":
                System.out.println("mingmao");
                break;
            default:
                System.out.println("匹配失败!");
        }
        
    }
}



While循环

image

image

package com.mingmao.javaflowcontrol;

public class WhileStructure {
    public static void main(String[] args) {
        //输出1-100
        int i=0;

        while(i<100){
            i++;
            System.out.print(i+"\t");
        }
        System.out.println();

        //输出1+2+3+...+100=?
        int j=0;
        int sum=0;

        while(j<100){
            j++;
            sum+=j;
        }
        System.out.println(sum);
    }
}



do while 循环

image

package com.mingmao.javaflowcontrol;

public class DoWhileStructure {
    public static void main(String[] args) {
        //计算1-100的和
        int i = 0;
        int sum = 0;

        do {
            i++;
            sum += i;
        } while (i < 100);

        System.out.println(sum);

        //do while与while 的区别
        //do while至少执行一次,先执行后判断
        //while先判断后执行
        int a = 0;

        do {
            System.out.println("do while执行结果:" + a);
        } while (a < 0);
        //输出:do while执行结果:0

        while(a<0){
            System.out.println("while的执行结果:"+a);
        }
        //输出:无内容

    }
}

for循环

image

image

package com.mingmao.javaflowcontrol;

public class ForStructure {
    public static void main(String[] args) {
        //输出1-100间的所有奇数

        //while循环
        int i=1; //初始条件

        while(i<100){ //条件判断
            System.out.print(i+"\t"); //循环体
            i+=2; //迭代
        }
        System.out.println();
        System.out.println("while循环结束");

        //for循环
        //初始条件//条件判断//迭代
        for (int j=1;j<100;j+=2){
            System.out.print(j+"\t"); //循环体
        }
        System.out.println();
        System.out.println("for循环结束");

        //练习1:计算0-100之间的奇数和以及偶数和
        int oddSum=0;
        int evenSum=0;

        for (int j = 1; j <=100; j++) {
            if(j%2==1){
                oddSum+=j;
            }else if(j%2==0){
                evenSum+=j;
            }else{
                System.out.println("出错了");
            }
        }
        System.out.println("奇数和:"+oddSum);
        System.out.println("偶数和:"+evenSum);

        //练习2:输出1-1000之间能被5整除的数,并且每行输出三个
        int count=0;

        for (int j = 1; j <=1000; j++) {
            if(j%5==0){
                System.out.print(j+"\t");
            }
            if(j%15==0){
                System.out.println();
            }
        }
        System.out.println();

        //练习3:打印99乘法表
        for (int j = 1; j <=9; j++) {
            for (int k = 1; k <=j; k++) {
                System.out.print(k +"*"+j+"="+(j*k)+"\t");
            }
            System.out.println();
        }

        //增强型for循环
        int[] arr={10,20,30,40,50};

        for(int a:arr){
            System.out.print(a+"\t");
        }
    }
}

break与continue

image

package com.mingmao.javaflowcontrol;

public class BreakContinue {
    public static void main(String[] args) {
        //break,碰到它,循环终止
        int i=0;
        while(i<100){
            i++;
            System.out.print(i+"\t");
            if(i==30){
                break;
            }
        }
        System.out.println();

        //continue,碰到它,便跳到循环开头继续执行
        //注意continue的放置位置
        int j=0;
        while(j<100){
            j++;
            if(j%2==0){
                continue;
            }
            System.out.print(j+"\t");
        }
        System.out.println();

        //标签
        //打印101-159之间的所有质数
        layer1:for(int num=101;num<=150;num++){
            layer2:for(int num2=2;num2<num/2;num2++){
                if(num%num2==0){
                    continue layer1;
                }
            }
            System.out.print(num+"\t");
        }
        
    }
}

流程控制练习题

package com.mingmao.javaflowcontrol;

public class Exercise {
    public static void main(String[] args) {
        //打印三角形5行
        //第一步
        for (int i = 1; i <=5; i++) {
            for (int j = 1; j <=2*i-1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }

        //第二步
        for (int i = 1; i <=5; i++) {
            for (int k=5-i;k>=0;k--){
                System.out.print(" ");
            }
            for (int j = 1; j <=2*i-1; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
*
***
*****
*******
*********
     *
    ***
   *****
  *******
 *********

学习视频

学习视频

推荐阅读