JAVA基础知识(三)

目录

流程控制

顺序结构

分支结构

单分支结构

多分支结构

嵌套分支结构

选择结构

执行顺序

注意事项

循环结构

循环

跳出循环

for循环

while循环

do-while循环

三种循环区别


流程控制

        指在程序运行时,个别的指令(或是陈述、子程序)运行或求值的顺序。

        基本的流程结构:顺序结构,分支结构,选择结构,循环结构。

顺序结构

1、顺序结构从头到尾所有代码依次都会执行到
2、可以解决输入 输出 计算等问题,但是不可以先做判断,再选择性的执行代码

分支结构

        根据指定变量或表达式的结果,决定后续运行的程序,最常用的是if-else指令,可以根据指定条件是否成立,决定后续的程序。也可以组合多个if-else指令,进行较复杂的条件判断。

单分支结构

/*单分支结构*/
int a = 15;
if(a>10) {//判断条件
	System.out.println(a);//如果判断条件的结果为true,才执行此行代码
}

多分支结构

/*多分支结构*/
char gender = '男';//定义性别为男
if(gender == '男') {
	System.out.println("男生可以玩滑板");
}else {
	System.out.println("女生也可以玩滑板~");
}

嵌套分支结构

package com.jt.zero;

public class one {
    public static void main(String[] args) {
        /*if(判断条件1) {
            如果符合判断条件1,执行此处代码1,如果不符合,继续向下判断条件2
        }else if(判断条件2) {
            如果符合判断条件2,执行此处代码2,如果不符合,继续向下判断条件3
        }else if(判断条件3) {
            如果符合判断条件3,执行此处代码3,如果不符合,继续向下判断
        }else {
            如果以上条件都不满足,执行此处代码
        }*/

        int a = 88;
        if(a<60){
            System.out.println("不及格");
        }else if (a >= 60 & a < 80){
            System.out.println("及格");
        }else if (a >= 80 & a < 90){
            System.out.println("良好");
        }else {
            System.out.println("优秀");
        }
    }
}

选择结构

        switch-case语句具有穿透效果,所以需要在每一个case语句后加上break。break表示中断,如果不加break,那么程序就会把"星期三"下面的所有语句都打印出来,直到遇到break。而为了防止超出选择范围,没有数据打印出来。通常我们会设置一个保底选项default,如果超出选择范围,那么就打印default语句。

package com.jt.zero;

public class one {
    public static void main(String[] args) {
        /*switch(a){
            case 1 : 操作1;break;【可选】
            case 2 : 操作2;break;【可选】
            case 3 : 操作3;break;【可选】
            case 4 : 操作4;break;【可选】
            default : 保底选项;【可选】
        }*/
        /**
         * break 中断
         */
        String a = "星期三";
        switch (a){
            case  "星期一" :
                System.out.println("今天星期一"); break;
            case  "星期二" :
                System.out.println("今天星期二"); break;
            case  "星期三" :
                System.out.println("今天星期三"); break;
            case  "星期四" :
                System.out.println("今天星期四"); break;
            case  "星期五" :
                System.out.println("今天星期五"); break;
            case  "星期六" :
                System.out.println("今天星期六"); break;
            case  "星期日" :
                System.out.println("今天星期日"); break;
            default:
                System.out.println("输入错误");
        }
    }
}

执行顺序

        先拿着变量a的值,依次与每个case后的值做比较,如果相等,就执行当前case后的操作,若case后没有break,就绪继续执行下一个case后的操作,如果一直没有遇到break,就会发生穿透的现象,包括default       

注意事项

1、变量a支持的类型byte short char int String
2、变量a的数据类型与case后value的数据类型必须一致
3、如果没有添加break,并且又有case被匹配到,会发生穿透的现象,包括deafult
4、case的个数 是否加break 是否加default 完全根据自己的业务来决定
5、如果添加了default保底选项,又没有任何一个case被匹配到,就会执行default后的语句
6、一般我们习惯在每个case后加break【这个只是建议,具体还是根据业务来写】

循环结构

        格式一:
             for(开始条件 ; 循环条件 ; 更改条件){  
                     循环体
             }             

        格式二(嵌套for循环):

        for(开始条件 ; 循环条件 ; 更改条件){                        //外层循环
             for(开始条件 ; 循环条件 ; 更改条件){                    //内层循环
                     循环体
             }
        }

注意:

注意1:写法小窍门:从哪开始 到哪结束 循环变量如何变化
注意2:for循环能够执行多少次,取决于循环变量可以取到几个值

package com.jt.zero;
/*九九乘法表*/
public class one {
    public static void main(String[] args) {
        /*for(开始条件 ; 循环条件 ; 更改条件){                        //外层循环
             for(开始条件 ; 循环条件 ; 更改条件){                    //内层循环
                     循环体
             }
        }*/
        /**
         * t代表table表格的意思,为了转变字母t的含义,需要使用转义字符\
         * 所以“\t”代表的是一个制表符
         */

        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( );
        }
//        1*1=1
//        1*2=2	2*2=4
//        1*3=3	2*3=6	3*3=9
//        1*4=4	2*4=8	3*4=12	4*4=16
//        1*5=5	2*5=10	3*5=15	4*5=20	5*5=25
//        1*6=6	2*6=12	3*6=18	4*6=24	5*6=30	6*6=36
//        1*7=7	2*7=14	3*7=21	4*7=28	5*7=35	6*7=42	7*7=49
//        1*8=8	2*8=16	3*8=24	4*8=32	5*8=40	6*8=48	7*8=56	8*8=64
//        1*9=9	2*9=18	3*9=27	4*9=36	5*9=45	6*9=54	7*9=63	8*9=72	9*9=81
    }
}

循环

跳出循环

        break:直接结束当前循环,跳出循环。

        contiune:跳出本轮循环,继续下一轮循环。

for循环

package cn.zero;

import java.util.Scanner;

/**练习:找数字88*/
public class TestBreakAndContinue {
	public static void main (String[]args) {
		for(int i = 1;i <= 100;i++) {
			System.out.print("请您输入数字:");
			int input = new Scanner(System.in).nextInt();
//			if(input== 88) {
//				System.out.println("对");
//				break;
//			}else {
//				System.out.println("错");
//			}
			if(input != 88) {
				continue;
				/**break与continue之后都不可以直接写代码,都是不可到达的代码*/
			}
			System.out.println("我是用于测试跳出循环函数");
			if(input == 88) {//猜对就结束全部循环
				System.out.println("恭喜你,猜对了");
				break;
			}
		}	
	}
}

while循环

        先判断,再执行

package cn.zero;

import java.util.Random;
import java.util.Scanner;

/**本类用于练习while循环*/
public class TestWhile {
	public static void main (String[]args) {
		guessNum();//调用自定义的猜数字方法
	}

	private static void guessNum() {//创建一个猜数字的方法
//参数100是自定义的,此时生成的随机数范围为:[0,100)
		int random = new Random() .nextInt(100);
//		System.out.println(random);
		while(true) {
			System.out.print("猜猜我是谁:");
			int input = new Scanner(System.in).nextInt();
			if(random>input) {
				System.out.println("小了");
			}else if (random<input) {
				System.out.println("大了");
			}else {
				System.out.println("猜对了");
				/**死循环必须设置程序的出口*/
				break;
			}
			
		}
	}
}

 do-while循环

        先执行,再判断,循环体代码保证最少执行一次

private static void one() {
		int n;
		do {
			System.out.println("我是循环体");
			n = new Random().nextInt(300);//生成随机数的范围[0,300)
			System.out.println(n);
		}while(n>100);
	}

三种循环区别

1、 for:知道循环次数
2、 while/do while:当循环次数不确定时
3、 while:先判断,不符合规则,不执行代码
4、 do while:代码最少被执行一次,再去判断,符合规则,再次执行代码
5、 循环之间都可以互相替代,但是一般最好选择合适的循环结构来完成代码

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值