Java控制流程

Java SE 复习2

Scanner

next() 和 nextline()的区别:
众所周知,在Java中输入字符串有两种方法,就是next()和nextLine(),今天研究了一下其中的区别。
首先,nextLine()的输入是碰到回车就终止输入,而next()方法是碰到空格,回车,Tab键都会被视为终止符。
所以next()不会得到带空格的字符串,而nextLine()可以得到带空格的字符串。
具体代码:

package scanner;

import java.util.Scanner;

public class ScannerTest {
    public static void main(String[] args) {

        //创建一个扫描器对象,用于接受键盘的数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next的方法接收: ");
        //判断是否输入字符串
        if (scanner.hasNext()){
            //next接收
            String next = scanner.next();
            System.out.println(next);
        }


        Scanner scanner1 = new Scanner(System.in);
        System.out.println("使用nextLine的方法接收: ");
        //判断是否输入
        if (scanner1.hasNextLine()){
            //next接收
            String next1 = scanner1.nextLine();
            System.out.println(next1);
        }


        Scanner scanner2 = new Scanner(System.in);
        System.out.println("请输入数据: ");
        //判断是否输入
        String next1 = scanner1.nextLine();
        System.out.println(next1);
        //属于io流,如果不关闭会占用资源,形成用完就关闭的好习惯
        scanner.close();
        scanner1.close();
        scanner2.close();
    }
}

效果图如下:

顺序结构

程序按照顺序执行

选择结构

if单选 if(boolean)
if双选择 if() else
if多选择 if() else if() else if() ***else
if嵌套if(){if()}
switch多选择 :
switch(expression){
case value: 语句; break;
case value: 语句; break;
case value: 语句;
case value: 语句; break;
default:语句;
}

循环结构

while

package xunhuan;

public class whileTest {
    public static void main(String[] args) {
        int i=0;
        while(i<100){ //当xxx时,为真
            //i++;    //1到100
            System.out.println(i);
            i++;  //0到99
        }
        int j=0,sum=0;
        while (j<100){
            j++;
            sum=sum+j;
        }
        System.out.println(sum);//5050
    }
}

do ..while

package xunhuan;

public class doWhileTesl {
    public static void main(String[] args) {
        int i=0,j=0;
        do {
            i++;
            j=j+i;
        }while (i<100); //当xxx时,为真
        System.out.println(j);//5050
    }
}

for

package xunhuan;

public class forTest {
    public static void main(String[] args) {
        /***
         * for(初始化;布尔值;更新)
         * 或者
         * for(;;) 也可以
         */
        int i=0,j=0;
        for (i=1;i<=100;i++){
            j=j+i;
        }
        System.out.println(j);
        for (i=1;i<10;i++){
            for (j=1;j<=i;j++)
                System.out.print(j+"*"+i+"="+i*j +'\t');
            System.out.println();
        }

    }
}

效果图如下:

增强for循环

语法格式为:
可以遍历数组和集合:

package xunhuan;

public class strongFor {
    public static void main(String[] args) {
        /**
         *遍历数组
         */
        int[] nums={10,20,30};
      
        for (int num : nums) {
            System.out.println(num);
        }
        //或者
        try {
            for (int i=0;i<3;i++){
                System.out.println(nums[i]);
            }
        }catch (Exception e){
            e.printStackTrace();
        }

    }
}

break和continue

break:跳出循环主体,也可以在switch
continue:终止某次循环,继续下一次循环
求质数:

package xunhuan;

public class zhishu {
    public static void main(String[] args) {
        /***
         * 打印质数 100~150
         * outer: 标签::
         */
        int count=0;
        outer:for (int i=101;i<150;i++){
            for (int j=2;j<i/2;j++)
                if (i%j==0){
                    continue outer;
                }
            System.out.println(i);
        }

    }
}

posted @ 2022-04-19 14:18  kk-ss  阅读(27)  评论(0)    收藏  举报