Java语法基础03

1.三元运算符

三元运算符,也称为三目运算符或问号冒号运算符。即有三个表达式参与的运算表达式。既然是个运算符,那么运算完必须有运算结果
三元运算符的格式
(表达式1)?表达式2:表达式3;
三元运算符的运算原则

●表达式1运算结果必须为boolean类型的值
●当表达式1的结果为true时,表达式2的运算结果就为整个三元运算符的结果
●当表达式1的结果为false时,表达式3的运算结果就为整个三元运算符的结果
三元运算符举例

class OperateDemo {
    public static void main(String[] args) {
        int x = 3 ;
        int y ;
        y = x  < 10 ? 100 : 200;
        System.out.println("y="+y);
    }
}
class OperateDemo {
    public static void main(String[] args) {
        int a = 3 ;
        int b = 5 ;
        int max ;
        max = a < b ? b : a;
        System.out.println("max="+max);
    }
}

经过前面的学习基本掌握了Java中的常量,变量,运算符的应用,但是只会这些,还是无法满足我们的要求,比如在生活中经常做逻辑判断,满足条件做什么事情,不满足做其他事情,有时甚至会根据判断的结果,将同一件事情重复性的做很多次。那么在Java中能不能描述生活中这些常见的操作呢?要解决这些问题,现在就来学习Java中的流程控制。

2.程序运行流程和顺序结构

什么是程序的流程呢?即就是代码的执行顺序

class Demo {
    public static void main(String[] args) {
        int a = 3 ;
        int b = 5 ;
        int sum ;
        sum = a + b;
        System.out.println("sum="+sum);
    }
}

上述代码当在dos命令行中写入java Demo 回车之后,首先会启动JVM,JVM就会去加载当前Demo这个class文件,并执行其中的main方法。当程序执行main方法的时候会从第一行开始往下执行,直到整个代码全部执行完成。在此过程中程序按照书写的顺序,不会跳过任何一行代码。像这样的执行流程就是常见的顺序执行结构
在程序中不是所有的代码都要执行的,有时需要根据数据的变化来判断具体那些代码需要执行,那些代码不需要执行。要在程序加入这样的具有判断功能的代码,我们现在就要来学习Java中的if条件判断结构。

3.判断结构(if)

if是Java种的关键字,当程序在执行过程遇到if关键字,JVM就知道此处需要进行判断,根据判断结果需要处理相应的代码
if判断第一种格式
if(条件表达式){
执行语句;
}
格式说明:if关键字后面是一对小括号,小括号后面是没有分号的,小括号中的表达式运算完的结果必须是boolean类型的值。
if流程控制执行顺序:JVM在执行代码时,遇到if关键字,首先会运算if括号中的表达式,当if中表达式的值为true时,就会执行if后面大括号中的语句。当if中表达式的值为false时,就会跳过if后面大括号中的语句,继续执行大括号下面的其他语句

class IfDemo {
    public static void main(String[] args) {
        int y = 4;
        if( y > 4){
            System.out.println("y大于4");
        }
        System.out.println("over");
    }
}

if判断第二种格式
if(条件表达式){
执行语句;
}
else{
执行语句;
}
执行说明:当if条件表达式为true时,执行if后面大括号中的语句,当if条件表达式为false时,执行else后面大括号中的语句。if-else格式组合成一条判断结构语句。要么执行if后面的语句,要么执行else后面的语句。切记,else后面的语句要能够执行,if中的条件表达式结果必须是false

class IfDemo {
    public static void main(String[] args) {
        int y = 4;
        if( y > 4){
            System.out.println("y大于4");
        }
        else{
            System.out.println("y小于等于4");
        }
        System.out.println("over");
    }
}

三元运算符可以简化if-else格式
三元运算符是简写的if-else格式,简写是有弊端:不是所有的if-else都能简化,三元运算符运算完必须有结果,而if-else不一定运算完一定有运算结果
int a = 4 , b = 5;
int max;
if( a > b){
max = a;
}else{
max = b;
}
可以使用三元运算简化:
max = a > b ? a : b;
if判断第三种格式
if(条件表达式){
执行语句;
}else if (条件表达式){
执行语句;
}
……
else{
执行语句;
}

class IfDemo {
    public static void main(String[] args) {
        int a = 3;
        if( a > 1){
            System.out.println("a");
        }
        else if( a > 2){
            System.out.println("b");
        }
        else if( a > 3){
            System.out.println("c");
        }
        else {
            System.out.println("d");
        }
    }
}

基本掌握了if的使用之后,再来学习一个和if功能十分相似的流程控制结构——switch多分支结构。

4.多分支结构(switch)

switch语句格式
switch(表达式){
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
……
default:
执行语句;
break;
}
程序执行时,遇到switch关键字,首先会计算表达式的值,然后根据计算的值和case后面的值做比较,当case后面的值和switch表达式的值相同时,就执行case身后的所有语句,若case身后没有和switch表达式匹配的值,程序就会执行default后面的语句

class SwitchDemo {
    public static void main(String[] args) {
        int x = 5;
        switch(x){
            case 5:
                System.out.println("a");
                break;         
            case 3:
                System.out.println("b");
                break;
            default:
                System.out.println("c");
                break; 
        }
        System.out.println("Hello World!");
    }
}

switch语句特点

● switch语句选择的类型只有四种:byte,short,int , char。(java5之前)。还支持 enum(jdk5), String(jdk7);
● case之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
● 结束switch语句的两种情况:遇到break,执行到switch语句结束。
● 如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束
if和switch的区别

● if可以用于判断数值,也可以判断区间,只要运算结果是boolean类型,都可以进行判断。
● switch用于对固定的几个值,进行判断。判断的值的类型有限
学习完了if和switch的应用之后,可以解决日常生活的部分判断性的问题,但针对有些需要重复多次的动作问题还是没有解决,现在就来学习Java中的循环结构。

5.循环结构(while和do-while)

循环结构
根据程序的需求,可以将某些代码重复执行的操作。Java中的循环结构有如下三种:
● while:事先不需要知道循环执行多少次
● do-while:同上,只是至少要执行一次(先做,后判断)
● for:需要知道循环次数
while循环格式
while(条件表达式)
{
执行语句;
}
while执行顺序:当程序遇到while关键字时,JVM首先会运算while后面的条件表达式,当条件表达式为true时,就会执行while后面大括号中的语句,当把大括号中的所有语句执行完之后,会又回到while的条件表达式处再次判断,若还为true,就继续执行大括号中的语句,若为false就跳过大括号中的所有语句,继续往下执行

class WhileDemo {
    public static void main(String[] args) {
        int i = 1;
        while( i < 10 ){//这个程序是个死循环
            System.out.println("i"+i);
        }
        System.out.println("over");
    }
}

上述循环是个无限循环(也称为死循环),主要原因是i变量一直为1,每次判断i<10都成立,导致选好条件结束不了。程序永远卡在循环这个地方执行

   public static void main(String[] args) {
        int i = 1;
        while( i < 10 ){
            System.out.println("i"+i);
            i++; // 让i不断的更新,最后使循环可以结束
        }
        System.out.println("over");
    }

while循环注意事项

● while循环的括号中的表达式计算结果必须为boolean类型的值。
● while循环的括号中不能直接写false常量。
● while循环的括号后面不要写分号,循环控制的语句的代码用大括号扩起来。
● while循环控制的条件变量一定要更新,保证循环能够正常结束
do-while循环格式
do{
执行语句;
}while(条件表达式);
执行顺序:先执行do后面的语句,当执行完之后再进入条件表达式进行判断,若条件表达式结果为true继续执行do后面的语句,若条件表达式结果为false,则结束循环。do while特点是无论条件是否满足,循环体至少被执行一次
while和do-while对比
在这里插入图片描述

6.循环结构(for)

for循环格式
for(初始化表达式(1);循环条件表达式(2);循环后的操作表达式(3)){
执行语句;(4)
}
执行顺序: for里面的3个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复这个过程,直到条件不满足为止

class ForDemo {
    public static void main(String[] args) {
        for(int x = 1; x<3; x++){
            System.out.println("x="+x);
        }
    }
}

for和while的区别
在这里插入图片描述

while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就在内存中释放。而while循环使用的变量在循环结束后还可以继续使用
无限循环
最简单无限循环格式:while(true){} , for(;?{},无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。

7.嵌套循环

循环嵌套:其实就是在循环中还有循环。简称大圈套小圈。

8.流程控制(continue和break)

break语句和continue语句

● break:终止该层循环
● continue:跳过该层循环
注:
● 若这两个语句离开应用范围,存在是没有意义的。
● 这个两个语句单独存在后面都不能有语句,因为执行不到。
● continue语句是跳过本次循环,继续下次循环。
● 标签的出现,可以让这两个语句作用于指定的循环
break是终止循环,即在程序中遇到break,那么break所属的循环将结束。

  for (int x=0; x<3 ;x++ )
        {
            if(x==1)
                break;
            System.out.println("x="+x);        
        }

continue是结束本次循环,继续下次循环。循环是不会结束的。

  for (int x=0; x<10 ;x++ )
        {
            if(x%2==0)
                continue;
            System.out.println("x="+x);
        }

使用循环标签
在多层嵌套循环中,终止/跳过标签标记的那层循环的执行;break <标签> 或
continue <标签>
在这里插入图片描述

编程练习题

1
在这里插入图片描述

2
在这里插入图片描述

3
在这里插入图片描述

4
在这里插入图片描述

5
在这里插入图片描述

6
在这里插入图片描述

7
在这里插入图片描述

8
在这里插入图片描述

9
在这里插入图片描述

10
在这里插入图片描述

11
在这里插入图片描述

12
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值