2020/3/4学习笔记-day11

java-day11

目录

java-day11

早上

流程控制

if语句

if-else语句

if-else if语句

if-else if-else语句

if语句的简写形式

示例1:

示例2 :

下午

          switch-case语句

实例1

实例2

for循环

实例3: 

while循环

实例


早上

流程控制

if语句

if(布尔表达式){
    //if中需要执行的代码
}

注意,if中的代码是否执行,主要是看这里的布尔表达式的结果,如果是true则执行代码,如果是false则不执行。

//例如:
int a = 10;
if(a%2==0){
    System.out.println("变量a的值为偶数");
}

if-else语句

if(布尔表达式){
    //if中需要执行的代码
}
else{
    //else中需要执行的代码
}

注意,if和else形成了一个组合,特点就是如果if中的代码执行了,那么else的代码就不执行,如果if中的代码没执行,那么else中的代码就会执行。也就是if和else这俩个语句中的代码,【一定】是有唯一的一个执行,而另一个不执行。

//例如:
int a = 10;
if(a%2==0){
    System.out.println("变量a的值为偶数");
}
else{
    System.out.println("变量a的值为奇数");
}
​
//例如:俩个if的情况
int a = 10;
if(a%20){
    System.out.println("变量a的值为偶数");
}
if(a%21){
    System.out.println("变量a的值为奇数");
}

注意,这种情况,逻辑上和if-else组合是不同的,if-else组合是代码二选一,一定会【有且只有】一个执行,但是这个例子中的俩个if语言,那么会依次使用变量a,分别在俩个if中做判断。

第一个if条件成立了,那么就执行代码,如果不成立就算了,接着继续判断第二个if的条件,如果条件成立了,那么就执行代码,如果不成立就算了。也就是无论什么情况,俩个if都会依次做出条件判断。

if-else if语句

if(布尔表达式){
    //if中需要执行的代码
}
else if(布尔表达式){
    //else-if中需要执行的代码
}
else if(布尔表达式){
    //else-if中需要执行的代码
}
...

注意,if和else-if搭配形成一个组合,这里面的else-if可以出现多次。

特点:把条件安装if + else-if 的编写顺序,依次做出判断,然后其中有一个判断成立的,返回true,那么下面的其他判断就不在进行。在这个组合中,只能会有一个判断执行,任意一个执行后其他都不在判断了。当然也有可能所以判断都不成立,都是返回的false,那么这个所以代码都不会执行了。

//例如:
int a = 10;
if(a%20){
    System.out.println("变量a的值为偶数");
}
else if(a%21){
    System.out.println("变量a的值为奇数");
}
​
​
​

if-else if-else语句

if(布尔表达式){
    //if中需要执行的代码
}
else if(布尔表达式){
    //else-if中需要执行的代码
}
else if(布尔表达式){
    //else-if中需要执行的代码
}
...
else{
    //else中需要执行的代码
}
​
​

特点:如果前面的所有判断都不成立,那么最后一定会执行else中的代码

if语句的简写形式

//例如:
int a = (int)(Math.random()*100);
if(a%50){
    System.out.println("余数为0");
}
else if(a%51){
    System.out.println("余数为1");
}    
else if(a%52){
    System.out.println("余数为2");
}    
else if(a%53){
    System.out.println("余数为3");
}
else{
    System.out.println("余数为4");
}

可以简写为:

int a = (int)(Math.random()*100);
if(a%5==0) System.out.println("余数为0");
​
else if(a%5==1) System.out.println("余数为1");
​
else if(a%5==2) System.out.println("余数为2");
​
else if(a%5==3) System.out.println("余数为3");
​
else System.out.println("余数为4");
​

规则:如果if、else-if、else语句中要执行的代码只有一句,那么可以把外面的大括号省去不写。

示例1:

实现一个方法,方法调用完后会返回一个问候的语句,例如如果是8点~12点之间,那么就返回早上好,如果是12点~14点,则返回中午好,如果是14点-18点,则返回下午好,其他情况,返回晚上好。

    public String sayHello(int hour){
        String message;
        
        if(hour>=8 && hour<12){
            message = "早上好";
        }
        else if(hour>=12 && hour<14){
            message = "中午好";
        }
        else if(hour>=14 && hour<18){
            message = "下午好";
        }
        else{
            message = "晚上好";
        }
​
        return message;
    }
    IfTest t = new IfTest();
    String msg = t.sayHello(hour);

示例2 :

实现一个方法,方法需要传一个参数,表示年份,方法调用完后会返回一个boolean值,表示这个年份是不是闰年

闰年判断标准:以下条件满足一个,就是闰年 1.能被4整除,但是不能被100整除 2.能被400整除

 

下午

switch-case语句

//格式
switch(var){
    case 值1:{
        code1;
        break;
    }    
    case 值2:{
        code2;
        break;
    }   
    case 值3:{
        code3;
        break;
    }  
    default:{
        code4;
    }
}
//注意,这里break表示退出switch代码
//对比的变量var类型有要求,必须是byte、short、int、char
//jdk8以后允许用String类型
//使用switch来完成的都可以用if来实现,反之不一定可以

例如:

int mode = 0;//0、1、2、3
​
switch(mode){
​
    case 0:{
        System.out.println("默认模式开启");
        break;
    }
​
    case 1:{
        System.out.println("手动模式开启");
        break;
    }
​
    case 2:{
        System.out.println("自动模式开启");
        break;
    }
​
    case 3:{
        System.out.println("智能模式开启");
        break;
    }
​
    default{
        System.out.println("模式选择错误");
        break;
    }
}

 

假如mode本次的值是0,那么case 0这种情况就成立了,然后执行里面的代码,代码执行完,最后执行break,然后退出整个switch语句,也就是说case 1 2 3 default这 几种情况的代码就不再执行了,同时也不往下判断了。这一切都是因为执行了break. 如果没写break,那么这时候就会变成另外一种情况:

  

由于这时候没有break,然后代码会继续往下执行,并且不会再做case 1 2 3的判断了,而是直接执行case 1 2 3中的代码,也包含执行default中的代码。

实例1

实现一个方法,方法需要-一个int类型参数,方法中可以把这个数字转换为对应的星期几,例如0对应星期天,1对应星期一,方法最后需要把转换的结果返回。

public String getDay(int day){
​
        String result;
        switch(day){
​
            
            case 0:{
                result="星期日";
                break;
            }
​
            case 1:{
                result="星期一";
                break;
            }
​
            case 2:{
                result="星期二";
                break;
            }
​
            case 3:{
                result="星期三";
                break;
            }
​
            case 4:{
                result="星期四";
                break;
            }
            case 5:{
                result="星期五";
                break;
            }
​
            case 6:{
                result="星期六";
                break;
            }   
            default:{
                result="输入有误";
                break;
            }
        }
        return result;
    }       

实例2

实现一个方法,方法需要俩个int类型参数,一个表示年份,一个表示月份,方法的返回值也是int,返回值的含义是指定年份指定月份一共有多少天

public static void main(String [] args){
        SwitchTest s = new SwitchTest();
        System.out.println(s.getDayOfMonth(2020,2));
}
​
//判断是否是闰年
public boolean isLeapYear(int a){
    boolean flag = false;
    if(a%4==0&&a%100!=0||a%400==0) flag=true;
    return flag;
}
​
public int getDayOfMonth(int year,int month){
        
    SwitchTest t = new SwitchTest();
        
    int days = 31;
​
    switch(month){
        case 4:         
        case 6:         
        case 9:         
        case 11:{
            days=30;
            break;
        }
            
        case 2:{
            days=t.isLeapYear(year)?29:28;
        }
    }
    return days;
}

  

for循环

格式:

​
for(初始变量;循环条件;增量){
    循环代码    
}
直到某一次改变初始变量之后,循环条件变为false,那么这个循
环就停止了。

执行流程:

执行初始化变量
执行循环条件判断
如果条件不成立(false)
    循环结束
如果条件成立(true)
    执行循环代码
    改变初始化变量
    循环条件判断
    如果是判断结果是true
        再次执行循环
    如果是判断结果是false
        循环结束

  

for循环的大括号中,如果只有一句代码,那么可以把大括号省去不写

实例3: 

实现一个方法,方法可以实现从1累加到100,并且最后把累加得到的结果返回

  

while循环

格式

while(循环条件){
    循环代码
}

特点:

for循环需要控制循环次数
while则不需要控制循环次数

实例

循环不断的生成[0,9]随机数,直到生成随机数为5的时候,那么就停止这个循环。

 

发布了82 篇原创文章 · 获赞 52 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/iostream992/article/details/104658120