Scanner和流程控制

Scanner和流程控制

Scanner

Scanner是获取用户输入的一种关键词,使用next或者nextline获取用户的输入,

Scanner s = new Scanner(System.in);

上面这一行就是new了一个Scanner获取用户在键盘上的输入,后面我们可以用hasNext或者hasNextline来判断是否用户继续输入,

public class D1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);//new一个Scanner,System.in代表着获取输入
        System.out.println("next");
        if (scanner.hasNext()){  //用hasNextline判断用户是否输入
            String STR = scanner.next();//将输入的字符串定义为STR
            System.out.println("输出:"+str);//输出STR
        }
    }
}
  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);
        }
    }
}

但是我们要注意,next和nextline是有区别的,next是以空格为终止符,也就是说HELLO WORLD这一串用next只能输出HELLO,而nextline是以回车为终止符,也就是在回车之前的字符都可以被输出。

if选择结构

顺序结构是最基本的算法结构,也就是代码从上到下一行一行的执行就不必多说,if选择结构非常简单

if单选择结构

 public static void main(String[] args) {
        int a = 0;//定义一个a=0
        if (a<0){ //如果a<0则运行以下的代码
            System.out.println("a<0");
        }
    }

if双选择结构

 public static void main(String[] args) {
        int a = 0;
        if (a<0){
            System.out.println("a<0");
        }else{ //如果a不小于0则运行以下代码
            System.out.println("a=0")
        }
    }

if多选择结构

public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);
        System.out.println("输入成绩:");
        double a = scanner.nextDouble();
        if (a<100&&a>=90) {
            System.out.println("优秀");
        } else if (a<90&&a>=80) {
            System.out.println("良好");
        } else if (a<80&&a>=60) {
            System.out.println("及格");
        }else if (a<60){
            System.out.println("差");
        }else{
            System.out.println("未知");
        }

    }

与双选择不同的是,if多选择可以添加很多个else if来选择,但是最后一个选择必定是else。

switch选择结构

public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("输入A,B,C成绩:");
        String name = scanner.next();
        switch(name){
            case"A"://如果是A就运行以下代码
                System.out.println("youxiu");
                break;
            case"B"://如果是B就运行以下代码
                System.out.println("lianghao");
                break;
            case"C"://如果是C就运行以下代码
                System.out.println("cha");
                break;
            default://如果都不是就运行以下代码
                System.out.println("weizhi");
        }
    }

与if不同的是,switch的每一个case下面都要添加break来作为结束,不然就会将下面的代码也一起运行,这种现象叫case穿透,在之后需要尤其注意。

while循环

  public static void main(String[] args) {
        int i = 0;
        double a =0;
        while(i<=100){//如果a<=100条件成立,程序便会一直运行下去
            a=a+i;
            i++;
        }
        System.out.println(a);
    }

while循环是一种循环结构,如果括号中的表达式成立,它便会一直运行循环中的代码,但是一直循环就变成了死循环,所以需要一个使失效的表达式来结束,其中i<=100就是失效表达式,当i在循环中一直自增,增加到101时表达式就会失效而结束循环。

do whlie循环

  public static void main(String[] args) {
        int i = 0;
        do{ 
           System.sout.println(i);
        }whlie(i<0)
    }

do while循环和while循环最重要的差别就是,while循环时先判断再执行,而do while是先执行再判断,上面的代码我们可以看到i不满足执行条件,但是输出结果会是一个0,这就是因为程序先执行了上面的代码,再判断i<0。

for循环

  public static void main(String[] args) {
        int a =0;
        int b =0;
        for(int c=0;c <= 100;c++){//初始值为c=0,布尔值为c<=100,迭代为c++
            if (c%2!=0){
                a+=c;
            }else{
                b+=c;
            }
        }
        System.out.println(a);
        System.out.println(b);
    }

for循环时灵活有效的循环方式,代码为 for(初始值,布尔值,迭代)。上面的代码运行的便是c初始等于零当c小于等于100时运行其中的代码,c每一次运行代码过后自增一次。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值