2020-09-12

day033
1.控制语句

  • 顺序结构

  • 选择结构[分支结构]

    • if,if…else
    • switch
  • 循环结构

    • for
    • while
    • do…while()
  • 控制循环的语句

    • break【跳出当前循环】
    • continue【从其调用处跳至循环的开始处,提前进入下一次循环】
      // - return【其之后的语句将不再执行】

    System.out.println();负责向控制台输出【从内存到输出台,输出的过程,这是从内存中出来了】
    接受用户键盘输入,从"键盘"到"内存"。【输入的过程,到内存中去】
    以下代码先不要问为什么!固定编码写就可以接受用户键盘的输入。

    //第一步:创建键盘扫描器对象
    *** java.util.Scanner s = new java.util.Scanner(System.in);

    //第二步:调用Scanner对象的next()方法开始接受用户键盘输入
    //程序执行到这里会停下来,等待用户的输入
    //当用户输入的时候,并且最终敲回车键的时候,键入的信息会自动赋值给userInputContent
    //程序执行到这里,用户输入的信息已经到内存中了。
    //接受文本【以字符串的形式接收】
    String userInputContent = s.next(); //标识符的命名规范:见名知意

    //接收数字【以整型数int的形式来接受】
    int num = s.nextInt();

    //将内存中的数据输出到控制台
    System.out.println(“您输入了:” + userInputContent);

    System.out.println(“您输入了的数字是:” + num);
    System.out.println(“计算结果:” + (num +100));

    总结:记住代码,或者直接将代码复制粘贴
    第一步:
    java.util.Scanner s = new java.util.Scanner(System.in);
    第二步:
    String str = s.next();

    int num = s.nextInt();

2.关于java语句当中的if语句,属于选择结构,if语句又被称为分支语句/条件控制语句:

  • if语句的语法结构:四种编写方式

    第一种:
    if(布尔表达式){
    java语句;
    java语句;
    java语句;
    java语句;

    }

    第二种:
    if(布尔表达式){
    java语句;
    java语句;

    }else{
    java语句;
    java语句;

    }

    第三种:
    if(布尔表达式){
    java语句;
    java语句;

    }else if(布尔表达式){
    java语句;
    java语句;

    }else if(布尔表达式){
    java语句;
    java语句;

    }else if(布尔表达式){
    java语句;
    java语句;

    }…第四种:
    if(布尔表达式){
    java语句;
    java语句;

    }else if(布尔表达式){
    java语句;
    java语句;

    }else if(布尔表达式){
    java语句;
    java语句;

    }else if(布尔表达式){
    java语句;
    java语句;

    }else{
    java语句;
    java语句;

    }

  • 重点:对于java中的if语句来说,只要有一个分支执行,整个if语句全部结束。

  • 注意:以上的第二种编写方式和第四种编写方式都带有else分支,这两种方式可以100%保证会有分支执行。

  • "所有的控制语句"都是可以嵌套使用的。只要合理嵌套就行。
    注意:嵌套使用的时候,代码格式要保证完美。【该缩进的时候必须缩进,大部分情况下使用
    大括号包围的需要缩进】

  • if语句的分支只有一条java语句的话,大括号可以省略不写。
    if(true/false){
    一条java语句;
    }

    if(true/false)一条java语句;

    这种方式不推荐使用,别人这么写能看懂就行。

  • if(sex)
    System.out.println(“男”);
    System.out.println(“呵呵”);
    else
    System.out.println(“女”);
    //以上程序中编译错误出现在136行。else缺少if。

例子1: 使用以下这种方式可以完成需求,但是这种方式效率较低,每一个if都是不相关的,都是独立的,每一个
if都会判断一次。

if(){

}

if(){

}

if(){

}

//根据需求决定选择以上的第四种结构完成需求

if(score < 0 || score > 100){
   System.out.println("对不起,您提供的考生成绩不合法");
}else if(score >= 90 && score <= 100){  //没必要判断是否小于等于100,能执行到这里一定<=100

} if(score < 0 || score > 100){
   System.out.println("对不起,您提供的考生成绩不合法");
}else if(score >= 90){  
   System.out.println("该考生的成绩等级是:A等级");
}else if(score >= 80){     //能够判断到这里说明成绩一定小于90分的
   System.out.println("该考生的成绩等级是:B等级");
}else if(score >=70){     
   System.out.println("该考生的成绩等级是:C等级");
}else if(score >=60){     
   System.out.println("该考生的成绩等级是:D等级");
}else {     
   System.out.println("该考生的成绩等级是:E等级");
}

例子2:
需求:假设系统给定一个人的年龄(这个年龄需要从键盘输入),根据年龄来判断这个人处于生命的哪个阶段,年龄必须在[0-150]
[0-5] 幼儿
[6-10] 少年
[11-18] 青少年
[19-35] 青年
[36-55] 中年
[56-150] 老年

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

 //1. 接收键盘输入:年龄【输入的时候必须输入数字】
 java.util.Scanner s = new java.util.Scanner(System.in);
 System.out.print("请输入您的年龄:");   //输出提示信息,要不然用户根本不知道这里要干嘛!
 int age = s.nextInt();          //停下来等待用户的输入,输入之后自动接收,赋值给age变量。
 System.out.println("age = " + age);

 //2.根据需求进行业务逻辑判断
 String str = "您处于生命周期的老年阶段";
 if(age < 0 || age >150){
        str = "您提供的年龄不合法,年龄值需要在[0-150]之间";
 }else if(age <= 5){
       str = "您处于生命周期的幼儿阶段";
 }else if(age <= 10){
       str = "您处于生命周期的少年阶段";
 }else if(age <= 18){
       str = "您处于生命周期的青少年阶段";
 }else if(age <= 35){
       str = "您处于生命周期的青年阶段";
 }else if(age <= 55){
       str = "您处于生命周期的中年阶段";
 }
 System.out.println(str);

}
}

3.关于switch语句:

* switch语句也属于选择结构,也是分支语句

* switch语句的语法结构:

      一个比较完整的switch语句应该这样编写:
       
       switch(int或String类型的字面值或变量){
             case int或String类型的字面值或变量 :
	          java语句;
		  java语句;
		  ...
		  break;
	     case int或String类型的字面值或变量 :
	          java语句;
		  java语句;
		  ...
		  break;
                 case int或String类型的字面值或变量 :
	          java语句;
		  java语句;
		  ...
		  break;
                 case int或String类型的字面值或变量 :
	          java语句;
		  java语句;
		  ...
		  break;
                 ...
	     default :
	          java语句;
		  ...
       } * switch语句的执行原理:
    switch后面小括号当中的"数据"和"case"后面的数据进行一一匹配,匹配成功的分支执行。
按照自上而下的顺序依次匹配。

* 匹配成功的分支执行,分支当中最后有"break;"语句的话,整个switch语句终止。

* 匹配成功的分支执行,分支当中最后没有"break;"语句的话,直接进入下一个分支执行(不进行匹配),
这种现象被称为case穿透现象。【提供break;语句可以避免穿透】

* 所有分支都没有匹配成功,当有default语句的话,会执行default分支当中的程序。

* switch后面和case后面只能是int或者String类型的数据,不能是其他类型。

*** 当然,byte,short,char也可以直接写到switch和case后面,因为它们可以进行自动类型转换。
byte,short,char可以自动转换成int类型。
JDK6的,switch和case后面只能探测int类型的数据。
JDK7之后包括7版本在内,引入新特性,switch关键字和case关键字后面可以探测int或者String类型的数据。

* case可以合并:

   int i = 10;
   switch(){
       case 1: case 2: case 3: case 10:
   System.out.println("Test Code!");
   }

      //编译报错
      long x = 100L;
  switch(x){}

      //解决编译错误
      long x = 100L;
  switch((int)x){}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值