HAIHAIHEI 发表于 2022-3-22 15:40

Java学习第八天

本帖最后由 HAIHAIHEI 于 2022-3-22 17:15 编辑

第八天,有不对之处麻烦各位指正
控制语句
控制语句的出现可以让程序具有逻辑性/条理性,可以使用控制语句来实现一个业务了
控制语句包括:选择语句,循环语句,转向语句
选择语句也叫做分支语句:if语句,switch语句
循环语句:主要循环反复的去执行某段特定的代码块,for循环,while循环,do.....while循环
转向语句:break,continue


if语句:

/*
if语法以及运行原理
if语句是分支语句,也叫条件语句
第一种写法:
      int a=100;
      int b=200;
      if(布尔表达式){
      java语句;
      java语句;
      }
一个大括号{}叫做一个分支
if这个单词翻译为如果,所以叫做条件语句
执行原理:布尔表达式结果为true时,执行大括号中的程序,否则大括号的代码不执行
第二种写法:
      if(布尔表达式){//分支1
      Java语句;
      }else{//分支2
      Java语句;
      }
执行原理:如果布尔表达式的结果为true,则执行分支1,分支2不执行,如果表达式的结果时false,分支1不执行,分支2执行
注意:1.对于整个if语句来说,在任何情况下只能有1个分支执行,不可能存在2个或者更多的分支执行,if语句中只要有1个分支执行了,整个if语句就结束了。(对于1个完整的if来说)
第三种写法:
      if(布尔表达式1){//分支1
      Java语句;
      }else if(布尔表达式2){//分支2
      Java语句;
      }else if(布尔表达式3){//分支3
      Java语句;
      }......
执行原理:先判断"布尔表达式1",如果为true,则执行分支1,if语句结束,当表达结果为false,会判断布尔表达式2的结果,结果为true则执行分支2,if语句结束....从上往下依次判断,主要看第一个true发生在哪个分支上,第一个true对应的分支执行,只要一个分支执行,整个if结束
第四种写法:
      if(布尔表达式1){//分支1
      Java语句;
      }else if(布尔表达式2){//分支2
      Java语句;
      }else if(布尔表达式3){//分支3
      Java语句;
      }else{//以上条件没有一个成立的话,这个else执行
      java语句;
      }
以上4种语法机制中,凡是带有else分支的,一定可以保证会有一个分支执行,如第二种和第四种
当分支当中的“Java语句”只有1条,那么大括号可以省略,但为了可读性,最好不要省略
分析外面if时,里面的for循环当做普通Java代码来考虑
*/
public class test
{
      public static void main(String[] args){
      boolean sex=true;
      if(sex){
      System.out.println("男");
      }else{
      System.out.println("女");
      }
//输出结果为男
      if(sex=false){
      System.out.println("男");
      }else{
      System.out.println("女");
      }
//输出结果为女,因为sex=false为赋值false给sex
      if(sex==true){
      System.out.println("男");
      }else{
      System.out.println("女");
      }
//输出结果为女,因为前面sex已经赋值为false,相当于false==true为false
//三目运算符
sex =false;
System.out.println(sex?"男":"女");
      if(sex)//不加大括号
      System.out.println("男");
      else
      System.out.println("女");
      
//例子:
                int age=500;
                if(0<age&age<10){
                System.out.println("幼儿");
                }else if(10<age&age<30){
                System.out.println("青年");
                }else if(30<age&age<60){
                System.out.println("中年");
                }else if(60<age&age<100){
                System.out.println("老年");
                }else{
                System.out.println("神仙");
                }
//第二种写法(增加了大致范围)      
                if(age<100){
                if(age<10){
                System.out.println("幼儿");
                }else if(age<30){
                System.out.println("青年");
                }else if(age<60){
                System.out.println("中年");
                }else if(age<100){
                System.out.println("老年");
                }
                }else{
                System.out.println("神仙");
                }
//第三种写法(改进了语法,更加方便)
      String str="wc";
      if(age<100){
                if(age<10){
                str="幼儿";
                }else if(age<30){
                str="青年";
                }else if(age<60){
                str="中年";
                }else if(age<100){
                str="老年";
                }
                }else{
                str="神仙";
                }
      System.out.println(str);
      }
}


switch语句:

/*
1.switch语句也是选择语句,也可以叫做分支语句
2.switch语句的语法格式
                switch(值){
                case 值1:
                java语法;
                java语法;
                break;
                case 值2:
                java语法;
                java语法;
                break;
                case 值3:
                java语法;
                java语法;
                break;
                default:
                java语法;
                }
以上是一个完整的switch语句:
其中:break语句和default不是必须的
switch语句支持的类包括int类型以及String类型
switch语句本质上是只支持int和String,但是byte,short,char也可以使用在switch语句中,因为byte,short,char可以进行自动类型转换
switch语句中“值”与“值1”,“值2”比较的时候会使用“==”进行比较
3.switch执行原理:
拿“值”与“值1”进行比较,如果相同,则执行该分支中的Java语句,然后遇到“break;”语句就结束了。
如果“值”与“值1”不相等会继续拿“值”与“值2”进行比较,如果相同,则执行该分支中的Java语句,然后遇到“break;”语句switch结束
注意:如果分支执行了,但分支最后没有“break;”此时会发生case穿透现象。
如果所有的case都没有匹配成功,那么最后default分支会执行
*/
public class test
{
      public static void main(String[] args){
      //switch只支持int和String类型
                //long x=100L;
                //switch(x){}
                byte b=100;
                switch(b){}
                short s=100;
                switch(s){}
                char c='a';
                switch('a'){}
                switch("abc"){}
          //案例:
      //根据数字来决定中午吃什么
      int num =1;//定义一个数字
      System.out.print("今天中午吃:");
      switch(num){
      case 0:
                System.out.println("红烧排骨");
                break;
      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穿透现象
      int num1=2;
      System.out.print("今天中午吃:");
      switch(num1){
      case 0:
                System.out.println("红烧排骨");
                break;
      case 1:
                System.out.println("糖醋里脊");
                break;
      case 2:
                System.out.println("油闷大虾");
      case 3:
                System.out.println("京酱肉丝");
      case 4:
                System.out.println("咸菜馒头");
                break;
      case 5:
                System.out.println("清水馍馍");
                break;
      }

      //关于default语句,当所有的case都没有匹配上的时候,执行default语句。
      System.out.print("今天中午吃:");
      int num3=10;
      switch(num3){
      case 0:
                System.out.println("红烧排骨");
                break;
      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;
      default:
                System.out.println("老北京炸酱面");
                break;      
      }
      //关于case合并问题
      System.out.print("今天中午吃:");
      int num4=3;
      switch(num4){
      case 0:
                System.out.println("红烧排骨");
                break;
      case 1:case 2:case 3:
                System.out.println("京酱肉丝");//不管num4=1,2,3,都会输出京酱肉丝
                break;
      case 4:
                System.out.println("咸菜馒头");
                break;
      case 5:
                System.out.println("清水馍馍");
                break;
      default:
                System.out.println("老北京炸酱面");
                break;      
      }
      }
}

HAIHAIHEI 发表于 2022-3-22 15:41

纯手打,如果有不对之处希望各位大佬指出,感激不尽{:1_893:}(注:这次写的好累:sleepy:)

lhlking 发表于 2022-3-22 15:55

这个真不错,语法是一方面,还要积累自己的算法、思路,更要养成一个代码编写好习惯。

赵小迪 发表于 2022-3-22 16:01

还不错 刚刚看一遍 没有发现什么问题

赵小迪 发表于 2022-3-22 16:02

希望楼主能继续坚持下去

Well54 发表于 2022-3-22 16:03

看着没啥问题,加油~

Molecule 发表于 2022-3-22 16:07

看着没啥问题,加油~

kds0221 发表于 2022-3-22 16:32

不错,不错。写的简单明了

EchoChao 发表于 2022-3-22 17:03

每天记录很不错,不知道吾爱支不支持md形式,这样代码看上去好看一些

caestar 发表于 2022-3-22 17:03

加油!!!{:1_921:}坚持下去就是胜利!
页: [1] 2 3
查看完整版本: Java学习第八天