Java流程控制语句(Ⅰ)


活动地址:CSDN21天学习挑战赛

流程控制语句

1.Java中的流程控制语句
  • 三类

    • 顺序结构语句:从进入到程序的入口之后,代码从上而下依次加载

      • 如: 从main进来之后,直接去输出,依次输出…
    • 选择结构语句:

      • if语句-----开发中使用比较多的,尤其格式2:if…else…
      • switch语句
    • 循环结构语句:

      • for
      • while
      • do-while
2.选择结构语句之if
  • 格式一:

    • 判断表达式是否成立,如果成立,则执行语句,否则不执行;

    • 注意事项:

      • if()后面不能带分号

      • 有分号的地方就不能{,有{的地方,不能有分号

        	if(表达式){
        		
        		语句;
        	}
        
//导包
import java.util.Scanner ;

public class IfDemo1{
	
	public static void main(String[] args){
			//创建键盘录入对象
			Scanner sc = new Scanner(System.in);
			//提示并录入数据
			System.out.println("请输入一个数据num:");
			int num = sc.nextInt();
			
			//判断
			if(num >=15){
				System.out.println("num大于等于15");
			}
			System.out.println("over");
		
	}
}
  • 格式二:

    • 执行流程:

      • 首先判断表达式是否成立,如果成立,则执行语句1…

      • 如果不成立,执行语句2…

        		if(表达式){		
        			语句1 ...;
        		}else{
        			语句2...;
        		}
        
//导包
import java.util.Scanner;

public class IfDemo2{	

	public static void main(String[] args){
	
	//创建键盘录入对象
	Scanner sc = new Scanner(System.in);
	
	//提示并录入数据
	System.out.println("请输入第一个数据:");
	int a = sc.nextInt();
	
	System.out.println("请输入第二个数据:");
	int b = sc.nextInt();
	
	//if...else... 流程语句

	//方式1:直接使用变量接收 (推荐第一种)
	//定义一个变量
	int max;
	if(a > b){
		//将a的值赋值给max
		max = a; 
		
		//System.out.println(a+"是最大值");
	}else {
		//将b的值赋值给max
		max = b ;
		//System.out.println(b+"是最大值");
	}
	
	System.out.println("max:" + max);
	
	System.out.println("----------------------------------"); 
	
	//方式2:直接输出
	if(a > b){
		System.out.println(a + "是最大值");
	}else {
		System.out.println(b + "是最大值");
		}
	}
}
  • 格式三:

    • 执行流程:

      • 先判断表达式1是否成立,成立,执行语句1

      • 如果不成立,继续判断表达式2是否成立,成立,则执行语句2,

      • 如果上面的表达式都不成立,执行else中的语句n…

        		if(表达式1){
        				语句1 ...;
        		}else if(表达式2){
        			语句2...;
        			...
        		}else{
        			语句n...;
        			
        		}
        
//导包
import java.util.Scanner ;

class IfDemo4{
	
public static void main(String[] args){
	//创建键盘录入对象
	Scanner sc = new Scanner(System.in) ;
	//提示,录入数据
	System.out.println("请输入学生的成绩:") ;
	int  socre = sc.nextInt() ;
    
    /*
		90-100    优秀 
		80-90     较好
		70-80     良好
		60-70     及格
		60以下    不及格
	*/
	//if格式3
	/*
	if(socre>=90 && socre<=100){
		System.out.println("优秀") ;
	}else if(socre>=80 && socre<90){
		System.out.println("较好") ;
		
	}else if(socre>=70 && socre<80){
		System.out.println("良好") ;
	}else if(socre>=60 && socre<70){
		System.out.println("及格") ;
	}else{
		System.out.println("不及格") ;
	}
	*/
    
    //学习任何计算机语言:程序---最终给客户去用的,考虑开发完成之后,自测
	//测试 :正确的数据 ,错误数据,边界数据
	
	//优化:最终版:加入一些非法数据的提示
	if(socre>100 || socre<0){
		System.out.println("您输入的数据不合法") ;
	}else if(socre>=90 && socre<=100){
		System.out.println("优秀") ;
	}else if(socre>=80 && socre<90){
		System.out.println("较好") ;
	}else if(socre>=70 && socre<80){
		System.out.println("良好") ;
	}else if(socre>=60 && socre<70){
		System.out.println("及格") ;
	}else{
		System.out.println("不及格") ;
	}
    
		//jvm:java虚拟机 校验你的语法的时候,需要校验语法的整个结构,考虑如果if的里面都不成立,这个程序没有结束;
		//就会出现问题;
		
	}

}
  • if…else…嵌套

    • 格式

      if(表达式1){
      				if(表达式2){
      					
      					语句1;
      				}else{
      					语句2;
      				}
      			
      		}eles{
      			if(表达式3){
      					
      					语句3...;
      				}else{
      					语句4...;
      				}
      			
      		}
      
      import java.util.Scanner ; 
      class IfTest{
      	
      	public static void main(String[] args){
      		
      		//创建键盘录入对象
      		Scanner sc = new Scanner(System.in) ;
      		
      		//提示并录入数据
      		System.out.println("请输入第一个数据:") ;
      		int num1 = sc.nextInt() ;
      		
      		System.out.println("请输入第二个数据:") ;
      		int num2 = sc.nextInt() ;
      		
      		System.out.println("请输入第三个数据:") ;
      		int num3 = sc.nextInt() ;
      		
      		
      		
      		int max ; 
      		if(num1>num2){
      			//语句----if...else
      			if(num1>num3){
      				max = num1 ; //num1大
      			}else{
      				max = num3 ; //num3大
      			}
      			
      		}else{
      			
      			//num2比num1大
      			if(num2>num3){
      				//将num2赋值max
      				max = num2 ;
      			}else{
      				//将num3赋值给max
      				max = num3 ;
      			}
      			
      		}
      		System.out.println("三个数据的最大值是:"+max) ;
      		
      		
      	}
      }
      
3.选择结构语句之switch
  • 格式

     switch(表达式或者某个变量值){
               case1:
                          语句1;
                          break ;
               case2:
                          语句2:
                          break ;
               ...
    
               default:
                          语句n;
                          break ;
               }
    
    /*需求:
               键盘录入一个值,判断星期
                      1,星期一
                      2,星期二
                      3,星期三,
                      4,星期四
                      5,星期五
                      6,星期六
                      7,星期日 */
    import java.util.Scanner;
    
    public class SwicthDemo {
    
        public static void main(String[] args) {
            //创建键盘录入对象
            Scanner sc = new Scanner(System.in) ;
            //提示并录入数据
            System.out.println("请输入一个星期(1-7的数据): ") ;
            int week = sc.nextInt() ;
      switch (week){
                case 1:
                    System.out.println("星期一") ;
                    break ;
                case 2:
                    System.out.println("星期二") ;
                    break ;
                case 3:
                    System.out.println("星期三") ;
                    break ;
                case 4:
                    System.out.println("星期四") ;
                    break ;
                case 5:
                    System.out.println("星期五") ;
                    break ;
                case 6:
                    System.out.println("星期六") ;
                    break ;
                case 7:
                    System.out.println("星期日") ;
                    break ;
                default :
                    System.out.println("非法数据") ;
                    break ;
            }
        }
    }
    
  • 执行流程

    •   switch接收结果
        *       接收的结果和case后面的值1进行对比,成立,执行语句1,break 结束语句;
        *       值1和switch接收的结果不匹配,和值2进行比较,成立,执行语句2, break,结束语句;
        *       ...
        *       如果上面case都不匹配,执行default语句,语句n,break ,结束...
      
  • switch后面的跟的值的数据类型可以有哪些类型?

    •       基本数据类型:byte,short,int,char
      
    •       jdk5以后可以是枚举类型 enum:引用类型
      
    •       jdk7以后可以是String字符串 :引用类型
      
  • switch语句中的注意事项也是 (考点)

    • 关于switch中的case语句后面只能常量,不能是变量 (体现Java是一种强类型语言)

      • 前端的javascript(弱类型语言):它里面的swtich的case是可以是变量,可以是个常量
    • 在书写switch语句的标准结构,不忘了break,如果语句中忘了书写break,会出现一个现象:case穿透!

      public class SwitchTest {
          public static void main(String[] args) {
               
              // case穿透   
              int a = 3 ;
              int b = 4 ;
              switch (a){//3
                  default:
                      b++ ;
                      break;
                  case 2:
                      b ++;
                  case 3://匹配成功
                      b++ ; //4 ++ = 5
                  case 4 :
                      b++ ; // 5++ = 6
              }
              //b的值是多少;
              System.out.println("b:"+b);
      
      • 在有的需求里面利用 case穿透 来完成一些需求;

        import java.util.Scanner;
        
        public class SwitchTest2 {
        
            public static void main(String[] args) {
                //创建键盘录入对象
                Scanner sc = new Scanner(System.in) ;
                //提示并录入数据
                System.out.println("请您输入一个月份的值:") ;
                int month = sc.nextInt() ;
                //利用case穿透:灵活运用
                switch (month){
                    case 3:
                    case 4:
                    case 5:
                        System.out.println("春季") ;
                        break ;
                    case 6:
                    case 7:
                    case 8:
                        System.out.println("夏季");
                        break ;
                    case 9:
                    case 10:
                    case 11:
                        System.out.println("秋季");
                        break ;
                    case 12:
                    case 1:
                    case 2:
                        System.out.println("冬季");
                        break ;
                    default:
                        System.out.println("非法数据!!") ;
                        break ;
                }
            }
        }
        
    • 关于switch语句的结束条件

      •          要么遇见break结束
        
      •          程序默认执行到末尾
        
    • 关于default语句可以在switch语句中的任何位置,不影响语句的执行流程;

      • 不管在任何位置,只要case语句都不匹配,执行default;
      • 如果default语句在语句中,break不要省略
      • 如果default语句的末尾,break可以省略(不建议);
/*
使用switch语句,完成模拟单项选择题操作
*/
import java.util.Scanner;

public class Demo9 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("电视剧《仙剑奇侠传》中,李逍遥的扮演者是谁?");
        System.out.println("请选择以下选项:" + "\n" + "[A.胡歌]" + "\t" + "[B.彭于晏]" + "\t" + "[C.袁弘]" + "\t" + "[D.霍建华]");

        String choice = scanner.next();//使用字符串
        switch (choice){
            case "A":
                System.out.println("恭喜你,回答正确!");
                break;
            case "B":
                System.out.println("对不起,回答错误!");
                break;
            case "C":
                System.out.println("对不起,回答错误!");
                break;
            case "D":
                System.out.println("对不起,回答错误!");
                break;
            default:
                System.out.println("没有该选项 ");
                break ;
        }
        System.out.println("-------------------------------------------------------");
        
         int choice = sc.nextInt() ;
        //将int类型---转换成char
        char choiceNum = (char) choice ;
        System.out.println(choiceNum);
        switch (choiceNum){
            case 'A':												//65
                System.out.println("√");
                break ;
            case 'B':												//66
                System.out.println("×");
                break ;
            case 'C':												//67
                System.out.println("×");
                break ;
            case 'D':												//68
                System.out.println("×");
                break ;
            default:
                System.out.println("没有该选项 ");
                break ;
        }
    }
}

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论

打赏作者

In-Deep

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值