第三天 Scanner和流程控制

Posted 青蛉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第三天 Scanner和流程控制相关的知识,希望对你有一定的参考价值。

Java流程控制

用户交互Scanner

package com.zhang.scanner;

import java.util.Scanner;

public class Demo01 {

    public static void main(String[] args) {
        //创建一个扫描器对象,接收键盘数据
        Scanner scan = new Scanner(System.in);
        System.out.println("使用next方式接收");
        //判断用户有没有输入字符串
        if(scan.hasNext()){
            //接收用户的输入
            String str =scan.next(); // 程序会等待用户输入完毕
            System.out.println("输入的内容为:"+str);
        }
        //凡是IO流的类如果不关闭,会一直占用资源。养成好习惯,用完就关掉
        scan.close();
    }
}

package com.zhang.scanner;

import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用NextLine接收:");
        if (scanner.hasNextLine()){ // 判断是否还有输入
            String str = scanner.nextLine();
            System.out.println("输出内容为:"+str);
        }
        scanner.close();
    }
}
package com.zhang.scanner;

import java.util.Scanner;

public class Demo05 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double sum = 0,x;
        int m = 0;
        System.out.println("输入数字");
        while (scanner.hasNextDouble()){//输入是否为数字
            x = scanner.nextDouble();
            sum+=x;
            m++;
            System.out.println("你输入了第"+m+"个数"+x);
        }
        scanner.close();
        System.out.println("总共输入了"+m+"个数,平均值为"+(sum/m)+",和为"+sum);
    }
}

顺序结构

选择结构

if单选择结构

package com.zhang.struct;

import java.util.Scanner;

public class IfDemo01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入内容");
        String s = scanner.nextLine();
        //s.equals 字符串比较函数
        if(s.equals("Hello")){//单项选择结构
            System.out.println(s);
        }
        System.out.println("END");
        scanner.close();
    }
}

if双选择结构

package com.zhang.struct;

import java.util.Scanner;

public class IfDemo02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入成绩");
        int score = scanner.nextInt();
        //小于60不及格
        if(score>=60){
            System.out.println("及格");
        }else{
            System.out.println("不及格");
        }
        scanner.close();
    }
}

if多选择结构

只会选择其中一个分支执行

package com.zhang.struct;

import java.util.Scanner;

public class IfDemo03 {
    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<100 && score>=90){
            System.out.println("A级");
        }else if(score<90 && score>=80){
            System.out.println("B级");
        }else if(score<80 && score>=60){
            System.out.println("C级");
        }else if(score<60 && score >=0){
            System.out.println("D级");
        }else{
            System.out.println("成绩不合法");
        }
        scanner.close();
    }
}

嵌套的if结构

switch多选择结构

package com.zhang.struct;

import java.util.Scanner;

public class SwitchDemo01 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String grade = scanner.next();
        // case穿透,匹配项没有break,会执行之后的所有语句
        switch (grade){ // switch 匹配一个具体的值
            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("未知等级");
                break;
        }
    }
}

循环结构

循环有以下三种:

while循环

package com.zhang.struct;

public class WhileDemo02 {
    public static void main(String[] args) {
        //1+2+3+..+100的和
        int num = 0;
        double sum = 0;
        while (num<100){
            num++;
            sum+=num;
        }
        System.out.println(sum);
    }
}

do...while循环

package com.zhang.struct;

public class DoWhileDemo02 {
    public static void main(String[] args) {
        int a = 0;
        while (a<0){    //不会执行
            a++;
            System.out.println(a);
        }
        System.out.println("=========================");
        do{             // 会先执行一次,再判断
            a++;
            System.out.println(a);
        }while(a<0);
    }
}

for循环

package com.zhang.struct;

public class ForDemo01 {
    public static void main(String[] args) {
        /*
        * for循环说明:
        * 最先开始执行初始化步骤,可以声明一种类型,但可以初始化一个或多个循环控制变量,也可以是空语句
        * 然后检测布尔表达式,如果为true,执行循环体,如果为false,循环终止
        * 执行一次循环后更新循环控制变量(迭代因子控制循环变量的增减)
        * 再次检测布尔表达式,循环上面过程
        */
        //    初始化      条件判断  迭代
        for (int i = 1; i <= 10; i++) {
            System.out.println(i);
        }
        System.out.println("for循环结束");
        /*
        for (; ; ){  死循环
        }
        
         初始化多个循环控制变量
        for (int a=1,b=1;;){
        }
         */
    }
}

九九乘法表

package com.zhang.struct;

public class ForDemo04 {
    public static void main(String[] args) {
        //九九乘法表
        for (int i=1;i<=9;i++){
            for (int j=1;j<=i;j++)
                System.out.print(j+"*"+i+"="+i*j+"\\t");
            System.out.println();
        }
    }
}

增强for循环

主要用来遍历数组和集合

package com.zhang.struct;

public class ForDemo05 {
    public static void main(String[] args) {
        int[] num = {1,2,3,4,5,6,7,8,9};
        //增强for循环
        for (int x:num) //将数组遍历,把值赋给x
            System.out.print(x+" ");
        System.out.println("\\n========================");
        //使用普通for循环
        for (int i=0;i<9;i++)
            System.out.print(num[i]+" ");
    }
}

break和continue

break

package com.zhang.struct;

public class BreakDemo01 {
    public static void main(String[] args) {
        int i=0;
        while (i<1000){
            i++;
            System.out.println(i);
            if (i==15)
                break;  // 使用break退出循环
        }
    }
}

continue

package com.zhang.struct;

public class ContinueDemo01 {
    public static void main(String[] args) {
        int i=0;
        while (i<30){
            i++;
            if(i%5==0){
                continue; //跳过本次循环,直接开始下一次循环
            }
            System.out.println(i);
        }
    }
}

打印三角形

package com.zhang.struct;

public class TestDemo01 {
    public static void main(String[] args) {
        //练习题 打印三角形
        for (int j=1;j<=5;j++){ //控制三角形高度
            for (int i=5;i>=j;i--) //打印每一行开始的空格5,4,3,2,1
                System.out.print(" ");
            for (int a=1;a<=j;a++) //打印左半个三角形1,2,3,4,5
                System.out.print("*");
            for (int x=1;x<j;x++)   //打印右半个三角形0,1,2,3,4
                System.out.print("*");
            System.out.println(); //换行
        }

    }
}

反编译

将Class文件复制到IDEA工作文件夹中可以查看源码

以上是关于第三天 Scanner和流程控制的主要内容,如果未能解决你的问题,请参考以下文章

mysql学习第三天练习(流程控制函数)

第三天

javaSE第三天

第三天

Java学习第三天

学java的第三天