零基础Java第六期:逻辑控制

目录

一、顺序结构

二、分支结构

2.1. if语句

(1)语法规则

(2)分号问题

(3)悬空else问题

2.2. switch语句

三、循环结构

3.1. while循环

3.2. for循环

3.3. do while循环

3.4. break

 3.5. continue

四、IDEA的调试


在生活中,很多事情的过程大致可以分为三类,顺序、分支、循环。

一、顺序结构

这里我们不再过多赘述,顺序结构比较简单,按照代码书写的顺序一行一行执行。

二、分支结构

2.1. if语句

(1)语法规则

语法规则1:

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

当布尔表达式结果为true,就会执行if后面的语句,否则不执行。

语法规则2: 

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

 当布尔表达式结果为true,就会执行if后面的语句,否则执行else后面的语句。例子如下。

int score=60;
if(score>=60){
    System.out.println("成绩合格");
}else{
    System.out.println("成绩不合格");
}

语法格式3:表达式1成立,执行语句1,否则表达式2成立,执行语句2,否则执行语句3

        if(布尔表达式1){
            语句1;
        }else if(布尔表达式2){
            语句2;
        }else{
            语句3;
        }
if(score >= 90){
System.out.println("优秀");
}else if(score >= 80 && score < 90){
System.out.println("良好");
}else if(score >= 70 && score < 80){
System.out.println("中等");
}else if(score >= 60 && score < 70){
System.out.println("及格");
}else if(score >= 0 && score < 60){
System.out.println("不及格");
}else{
System.out.println("错误数据");
}

代码风格:

int a=1;
if(a==1){
   语句1;
}else{
    语句2;
}

 代码风格上,推荐使用以上风格。把{与if或else放在同一行。

(2)分号问题

        int a=1;
        if(a==2);{
            System.out.println("heloo");
        }

 上述代码当执行到分号时就结束了,不管任何条件下都能执行。

(3)悬空else问题

int x = 10;
int y = 10;
if (x == 10)
if (y == 10)
System.out.println("aaa");
else
System.out.println("bbb");

     if / else 语句中可以不加 大括号 . 但是也可以写语句(只能写一条语句). 此时 else 是和最接近的 if 匹配。但是实际开发中我们 不建议 这么写, 最好加上大括号。后期工作时,领导会看我们写的代码。如果看到这种风格的代码,会被叫去训话。

2.2. switch语句

switch(表达式){
   case 常量值1:{
    语句1;
    [break;]
      }
     case 常量值2:{
     语句2;
     [break;]
      }
     default:{
     内容都不满足时执行语句;
    [break;]
      }
  }

      执行流程: 1. 先计算表达式的值 2. 和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束 3. 当表达式的值没有与所列项匹配时,执行default。比如我们可以根据day的值打印出星期几。

 Scanner sca = new Scanner(System.in);
        int day= sca.nextInt();
        switch(day){
            case 1:
                System.out.println("Monday");
                break;
            case 2:
                System.out.println("Tuesday");
                break;
            case 3:
                System.out.println("Wednesday");
                break;
            case 4:
                System.out.println("Thursday");
                break;
            case 5:
                System.out.println("Friday");
                break;
            case 6:
                System.out.println("Saturday");
                break;
            case 7:
                System.out.println("Sunday");
                break;
            default:
                System.out.println("输入有误");
                break;

       注意:多个case后的常量值不可以重复。switch的括号内只能是以下类型的表达式: 基本类型:byte、char、short、int,注意不能是long类型、引用类型:String常量串、枚举类型 。break不能遗漏,否则会失去多分支效果。switch不能表达太复杂的问题。

三、循环结构

3.1. while循环

语法规则:

while(循环条件){
    循环语句;
}

循环条件为true,则就会执行循环语句,否则循环结束。

 打印1——10,代码如下:

int a =1;//变量的初始化
while(a<=10){
    System.out.println(a);
    a++;//趋近与循环结束的条件
}

计算1——100的和,代码如下:

int n = 1;
int result = 0;
while (n <= 100) {
  result += n;
  n++;
}
System.out.println(num);

计算5的阶乘,代码如下:

int n = 1;
int result = 1;
while (n <= 5) {
  result *= n;
  n++;
}
System.out.println(num);

       if和while的相似点:while 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句, 建议还是加上 { };while 后面的 { 建议和 while 写在同一行;和 if 类似, while 后面不要多写 分号, 否则可能导致循环不能正确执行。

3.2. for循环

语法规则:

for(表达式1;布尔表达式2;表达式3){
    表达式4;
}

 表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次;

表达式2: 循环条件,满则循环继续,否则循环结束;

表达式3: 循环变量更新方式。

执行过程:1234→234→234→234……如果2为false,则循环就会停止。

如果布尔表达式2不写,则默认为真, 比如下面这段代码。 

        for (int a = 0; ; a++) {
            System.out.println(a);
       }

 如果运行,则代码就会死循环。

for循环还有一个小技巧。当我们在IDEA上敲入for时,就会显示出fori,此时默认变量为i,并构成了一个框架只需要修改第一个i,后面两个都会自动修改。

 用for循环打印1——10

for(int a=1;a<=10;a++){
    System.out.println(a);
}

用for循环计算1——100的值 

int sum=0;
for(int i=0;i<=100;i++){
    sum+=i;
}
System.out.println(sum);

 计算5的阶乘

int result = 1;
for (int i = 1; i <= 5; i++) {
     result *= i;
}
System.out.println("result = " + result)

注意:for 下面的语句可以不写 { } , 但是不写的时候只能支持一条语句. 建议还是加上 { } ;for 后面的 { 建议和 while 写在同一行;for 后面不要多写 分号, 否则可能导致循环不能正确执行;和while循环一样,结束单趟循环用continue,结束整个循环用break(后面会讲到continue,break)。

3.3. do while循环

语法结构: 

do{
  循环语句;
}while(循环条件);

 用do while循环打印1——10

int num =1;
do{
  System.out.println(num);
}while(num<=10);

 do while循环一定不要忘记最后的分号。

3.4. break

break让循环终止。 例如找到 100 - 200 中第一个 3 的倍数,代码如下 

for(int a=100;a<=200;a++){
    if(a%3==0){
           System.out.println(a);
           break;
     }
}
//执行结果:102

 3.5. continue

continue 的功能是跳过这次循环, 立即进入下次循环。 比如下面这段代码,利用continue打印100——200之间能被3整除的数字


        for(int a=100;a<=200;a++){
            if(a%3!=0){
                a++;
                continue;
            }
            System.out.println(a);
            a++;

四、IDEA的调试

        int i=1;
        while(i<=10){
            if(i==3){
                break;
            }
            System.out.println(i);
            i++;
        }

当鼠标左击一下时,所在的一行就会出现一个断点,此时点击调试(英文为debug)。

       蓝色的折箭头为逐语句,蓝色的箭头为逐过程,也就是进入函数内部。左侧的红色方框为停止调试,绿色的三角形是跳到下一个断点。左边的框为方法或函数的栈,右边的框显示变量的值。

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值