Java学习笔记6 流程控制

Java基础语法

流程控制
条件判断
  1. if条件语句

    if语句指的是如果满足某种条件,就进行某种处理;

    代码格式:

    if(判断语句1){
    
      执行语句;
    
    }
    
  2. if/else语句指的是如果满足某种条件,就执行if代码块;如果不满足,则执行else代码块;

    代码格式:

    if(判断语句){
      执行语句1;
    
    }else{
    
      执行语句2;
    
       }
    
    if-else语句
  3. if/else if/else,else if语句可以多个;

    if(判断语句1){
    
      执行语句1;
    
    }else if(判断语句2){
    
      执行语句2;
    
    } ……
    
     else if(判断语句n){
         
       执行语句n;
    
    }
    else{
    
    }
    
    if/elseif/else语句

    实例:

    public class Test4 {
        public static void main(String[] args) {
            int i=100;
    
            //if语句
            if(i>0){
                System.out.println("i大于0");
            }
    
            //if/else语句
            if (i>0){
                System.out.println("i大于0");
            }else{
                System.out.println("i小于或等于0");
            }
    
            //if/else if/else语句
            if (i>0){
                System.out.println("i大于0");
            }else if (i<0){
                System.out.println("i小于0");
            }else{
                System.out.println("i等于0");
            }
    
        }
    }
    
  4. 有时候分支是根据常量值进行判断的,这时候虽然可以使用if/else来实现,但是用switch/case更为清晰;

  • switch/case中的表达式只能使用规定的基本数据类型,JDK1.5前可以使用:

    基本数据类型byte

    基本数据类型short

    基本数据类型int

    字符型char

  • 不能使用:

    基本数据类型float、double、long、boolean

  • JDK5之后,switch表达式类型新增加支持:枚举(enum)

  • JDK7之后,switch表达式类型新增加支持:String

    代码格式:

    switch(表达式) {
    	case 常量表达式1:
    		语句1;
             break;
    	case 常量表达式2:
    		语句2;
             break;
    	......
    	case 常量表达式n :
             语句n;
             break;
     	default:    
             语句n+1;
             break;
    }
    

    实例:

    import java.util.Scanner;
    
    public class Test5 {
        public static void main(String[] args) {
            Scanner input=new Scanner(System.in);
    
            System.out.println("1.登录2.注册0.退出");
            System.out.print("请输入您的选择:");
            int sel=input.nextInt();
    
            switch (sel){
                case 1:
                    System.out.println("欢迎来到登录页面!");
                    break;
                case 2:
                    System.out.println("欢迎来到注册页面!");
                    break;
                case 0:
                    System.out.println("退出成功,欢迎下次光临!");
                    break;
                default:
                    System.out.println("输入有误,请重新输入!");
                    break;
            }
        }
    }
    
循环语句
  1. for循环结构:

    for(初始化语句;判断条件语句;控制语句){
    
      循环体语句块;
    
    }
    

    实例:

    public class Test6for {
        public static void main(String[] args) {
            for (int i=0;i<100;i++){
                System.out.println("hello world");
            }
    
            //可以通过编译,死循环
            for (int i=0;i<100;){
                System.out.println("hello world");
            }
    
            //无法通过编译,中间的判断条件语句一定是布尔类型
            for (int i=0;i;i++){
                System.out.println("hello world");
            }
    
            //for (;;){}能否编译通过?
            //可以通过编译,死循环
            for (;;){
                System.out.println("hello world");
            }
        }
    }
    
  2. while循环基本结构如下所示:

    while(判断条件语句){
    
      循环体语句块;
    
      控制语句;
    
    }
    

    实例:

    public class Test7while {
        public static void main(String[] args) {
            int i=0;
    
            //死循环
            while(i<100){
                System.out.println("hello world");
            }
            
            //循环100次
            while(i<100){
                System.out.println("hello world");
                i++;
            }
        }
    }
    
  3. do while循环基本结构如下所示:

    do{  
    	循环体语句块; 
    	控制语句;  } 
    while(判断条件语句)  ;     
    

    实例:

    public class Test8DoWhile {
        public static void main(String[] args) {
            int i=0;
    
            do {
                System.out.println("hello world");
                i++;
            }while (i<100);
        }
    }
    
  4. while循环和do while循环的区别:

    • do …while至少会执行1次,先执行后判断。

    • while先判断,再执行。

    • 只有第一次判断条件为假的情况,两个结果是不同的。

  5. break和continue区别

    • 在循环控制语句的循环体中,可以使用continue语句,表示不再继续循环体后面的代码,但是会继续下一次循环;

    • 在循环控制语句的循环体中,可以使用break语句,表示终止当前循环,跳出循环体,不再继续下次循环;

    实例:

    public class Test9ContinueBreak {
        public static void main(String[] args) {
            //第五次不打印
            for (int i=1;i<11;i++){
                if(i==5){
                    continue;
                }
                System.out.println("第"+i+"次执行打印,hello world");
            }
    
            //第五次往后都不打印
            for (int i=1;i<11;i++){
                if(i==5){
                    break;
                }
                System.out.println("第"+i+"次执行打印,hello");
            }
        }
    }
    
  6. for和while循环的区别:

    • for适合循环次数确定

    • while适合循环次数不确定

    实例:

    import java.util.Scanner;
    
    /**
     *模拟用户输入密码情景,循环次数不确定,适合用while循环
     */
    public class Test10ForWhile {
        public static void main(String[] args) {
            //for(int i=0;i<1000;i++){}//循环次数确定
            // while适合循环次数不确定
            Scanner input = new Scanner(System.in);
    
            while(true){
                System.out.print("请输入用户名:");
                String username = input.next();
                System.out.print("请输入密码:");
                String password = input.next();
    
                //指定用户名abc,密码111
                if(username.equals("abc") && password.equals("111")){
                    break;
                }else{
                    System.out.println("用户名或者密码错误,请重新输入!");
                }
            }
        }
    }
    
  7. 练习:通过3种循环完成5个学生java成绩数据的输入的工作。

    import java.util.Scanner;
    
    /**
     * 通过3中循环完成5个学生java成绩数据的输入的工作。
     */
    public class Work2 {
        public static void main(String[] args) {
    
            Scanner input=new Scanner(System.in);
    
            //for循环
            for (int i = 0; i < 5; i++) {
                System.out.println("请输入第"+(i+1)+"个同学的java成绩:");
                int score = input.nextInt();
                if (score>=0&&score<=100) {
                    System.out.println("成功输入第"+(i+1)+"个同学的java成绩");
                }else{
                    System.out.println("成绩不合法,请输入0~100之间的数!");
                    i--;
                }
            }
    
            //while循环
            int j=0;
            while(j<5){
                System.out.println("请输入第"+(j+1)+"个同学的java成绩:");
                int score = input.nextInt();
                if (score>=0&&score<=100) {
                    System.out.println("成功输入第"+(j+1)+"个同学的java成绩");
                }else{
                    System.out.println("成绩不合法,请输入0~100之间的数!");
                    j--;
                }
                j++;
            }
    
            //do-while循环
            int i=0;
            do {
                System.out.println("请输入第"+(i+1)+"个同学的java成绩:");
                int score = input.nextInt();
                if (score>=0&&score<=100) {
                    System.out.println("成功输入第"+(i+1)+"个同学的java成绩");
                }else{
                    System.out.println("成绩不合法,请输入0~100之间的数!");
                    i--;
                }
                i++;
            }while(i<5);
        }
    }
    
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值