Java教程

java流程控制

本文主要是介绍java流程控制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

java流程控制

Scanner对象

基本语法

Scanner s = new Scanner(System.in);

通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般要使用hasNext()与hasNextLine()判断是否还有输入的数据。

next:

public class demo01 {
    public static void main(String[] args) {
        //创建一个扫描对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);
          
        System.out.println("使用next接收");
           
        //使用next方法接收
        String str = scanner.next();
          
        System.out.println("输出的数据:"+str);
       
        //IO流的类如果不关闭会一直占用资源,要用完就关掉
        scanner.close();
    }
}

输入Hello world
输出Hello

  1. 只有读到有效字符后才结束
  2. 对输入有效字符之前遇到的空白,会自动将其去掉
  3. 只有输入有效字符后才将后面输入的空白作为分隔符或者结束符
  4. 不能得到带有空格的字符串

nextLine:

public class demo02 {
      public static void main(String[] args) {
        //创建一个扫描对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);
          
        System.out.println("使用nextLine接收");
           
        //使用nextLine方法接收
        String str = scanner.nextLine();
          
        System.out.println("输出的数据:"+str);
       
        //IO流的类如果不关闭会一直占用资源,要用完就关掉
        scanner.close();
    }
}

输入Hello world
输出Hello world
  1. 以Enter为结束符,返回的是输入回车之前的所有字符
  2. 可以获得空白

选择结构

if单选择结构

if(布尔表达式){
    //如果表达式为true将执行的语句
}

if双选择结构

if(布尔表达式){
    //如果表达式为true将执行的语句
}else{
    //如果表达式为false将执行的语句
}

if多选择结构

if(布尔表达式1){
    //如果表达式1的值为true将执行的语句
}else if(布尔表达式2){
    //如果表达式2的值为true将执行的语句
}else if(布尔表达式3){
    //如果表达式3的值为true将执行的语句
}else {
    //如果以上表达式都不为true执行的语句
}

switch多选择结构

switch(expression){
    case value: 
        //语句
        break;//可选,用于停止
    case value:
        //语句
        break;//可选
    //可以有任意个case语句
    default://可选,当expression中的值不符合上面所有的case就执行,如果上一条case执行了且没加break语句,default也会执行
        //语句        
}

当对应一条语句时,如果未加break语句,则会从这条语句一直执行到最后一条语句结束

循环结构

while循环

public static void main(String[] args) {
        //输出1+2+3+...+100
        int i = 0;
        int sum = 0;
    
        while (i<=100) {
            sum=sum+i;
            i++;
            System.out.println(sum);
        }
    }

do...while循环

public static void main(String[] args) {
        //输出1+2+3+...+100
        int i = 0;
        int sum = 0;
    
    	do{
            sum=sum+i;
            i++;
        }while (i<=100);
    
        System.out.println(sum);        
    }

while和do...while区别

public static void main(String[] args) {
        int a = 0;
    	//while
        while (a<0) {
            System.out.println(a);
            a++;
        }
    	
        System.out.println("------");	//分割线
    	//do...while
        do {
            System.out.println(a);
            a++;
        }while (a<0);
    }
输出结果:
    ------
    0
    //while先判断后执行
    //do...while先执行后判断,也就是说do...while最少会执行一次

for循环

for循环是支持迭代的一种通用结构

迭代是重复反馈过程的活动

//标准格式
for(初始化;布尔表达式;更新){
	//代码语句
}

IDEA中生成for循环的快捷键:100.for	生成如下代码

for (int i = 0; i < 100; i++) {
            
        }
        
//计算0到100之间奇数和偶数的和
 public static void main(String[] args) {        
        int oddSum = 0;
        int evenSum = 0;

        for (int i = 0; i <= 100; i++) {
            if (i%2!=0) {
                oddSum+=i;//奇数加一
            }else {
                evenSum+=i;//偶数加一
            }
        }
        System.out.println(oddSum);
        System.out.println(evenSum);
    }
//输出1-1000之间能被5整除的数,并且每行输出三个
public static void main(String[] args) {        
        for (int i = 0; i <= 1000; i++) {
            if (i%5==0) {
                System.out.print(i+"\t");
               					  //\t:制表符,表示一个Tab
            }
            //每打印三个被五整除的数后换行输出
            if (i%(5*3)==0) {
                System.out.println();	//换行                
            }
        }
    }
//打印九九乘法表
 public static void main(String[] args) {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1;  j<= i; j++) {
                System.out.print(i+"*"+j+"="+(i*j)+"\t");
            }
            System.out.println();            
        }
    }
    
执行过程  判断i --> 判断j --> 执行里面的sout --> j+1 --> 再次判断j --> 直到判断为false --> 执行换行sout --> i+1
		--> 再次判断i --> 直到判断为false --> 停止循环打印
    		

增强for循环

for(声明语句:表达式){
    //代码语句
}


public static void main(String[] args) {
        int[] numbers = {10,20,30,40,50};//定义一个数组
        //遍历数组的元素
        for (int x:numbers){
            System.out.println(x);
        }
    }

//遍历是指沿着某条搜索路线,依次对树中每个节点均做一次访问。
//简单来说就是就相当于给全部循环 比如你写个程序 给每个数加1 ,然后给的数是1,2,3,4,5, 就等于第一次程序循环先给1加1,然后再循环回来给2加1,再循环回来给3加1,树的节点相当于字典中的目录。根节点就是最大的目录,子节点是在根节点中的可以有多个。

break和continue

break

在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。

public static void main(String[] args) {
        int i = 0;
        while (i<100){
            i++;
            System.out.println(i);
            if (i==30) {
                break;//当i=30,停止循环
            }
        }

    }
//打印结果为1到30换行打印

continue

用在循环体语句中,用于终止某次循环过程

  public static void main(String[] args) {
        int i = 0;
        while (i<23) {
            i++;
            if (i%10==0) {
                System.out.print(" ");
                continue;	//每到10的倍数,打印空格并跳过此循环
            }
            System.out.println(i+" ");
        }
    }
//打印结果为 1 2 3 4 5 6 7 8 9  11 12 13 14 15 16 17 18 19  21 22 23
//9和19后面有两个空格

打印三角形

 public static void main(String[] args) {
        //打印三角形 5行
        for (int i = 1;i<5;i++){
            for (int j=5;j>=i;j--){
                System.out.print(" ");//打印左边的空格
            }
            for (int j = 1;j<=i;j++){
                System.out.print("*");//打印左边的三角形
            }
            for (int j = 1;j<i;j++){
                System.out.print("!");//打印右边的三角形,为了更好的区分,用!代替*
            }
            System.out.println();
        }
    }

//打印结果

     *
    **!
   ***!!
  ****!!!
         
//全为*的效果图
     *
    ***
   *****
  *******
这篇关于java流程控制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!