选择 | 循环 | 语句(if,if……else,switch,while,for)的理解和使用

一、选择结构语句
选择结构语句,字面上理解既然含有选择,就一定得有相应供其选择的条件才行。
例如现实世界中我们开车遇到红绿灯会知道红灯停,绿灯行,Java中也是如此,有些代码必须满足条件才能被执行。
对一些条件进行判断,从而来确定执行哪些代码的语句,就是选择结构语句。
选择结构语句主要有if语句和switch语句两种,if语句又可以分为if,if……else,if……else if……else三种。下面来详细看一下这三种语句的用法。

1、if条件句

if代表的含义是如果满足某种条件,就进行处理,其格式如下:

if(条件语句){
    需要执行的代码块
}

条件是我们规定的,通过判断条件否满足,从而判断进行何种运算。
例如上面的代码块我们要达到的是:如果小明考了90分以上,妈妈就奖励小明一个机器人。通过if语句表达的格式如下

if(小明成绩>90){
    妈妈奖励一个机器人
}

当小明成绩!>90时,妈妈没有惩罚也没有奖励
判断条件必须是布尔值,当条件为true时,{ }中的代码块才会被执行,否则直接跳过{ }内的语句。这是if语句总结

2、if……else条件语句

但是我们有时候会发现,上面的例子不太 符合现实,小明万一考的低于90,妈妈要打他该怎么办?那就需要if……else语句了,if……else语句格式如下

if(条件语句){
    如果条件成立,执行的代码
}else{
    如果条件不成立,执行的代码
}

继续用小明的例子来看一下,这次小明没有考到九十分,妈妈想打他,该怎么办?既然if语句满足不了需求了,那么我们就看看if……else是怎么解决的。

if(小明成绩>90){
    妈妈奖励机器人
}else{
    妈妈打小明一顿
}

判断条件必须是一个布尔值,当值为true时,执行if后面{ }中的内容;当值为flase时,执行else后面{ }中的内容。

3、if……else if……else语句

但是我们发现,if……else语句有时候仍然没办法满足我们的需求,因为小明的妈妈并不是一个不通人情的人,如果满分80分的卷子小明考了80还要被打,真是太没有天理了。于是我们有了if……else if ……else语句,先来看一下基本格式

if(判断条件1){
    执行的代码1
}else if(判断条件2){
    执行的代码2
}
……
else if(判断条件n){
    执行的代码n
}else{
    执行的代码4
}

该语句是用于对多个条件进行判断,进行多种处理的语句
加入小明考了85分,妈妈没有打他也没有表扬他,那么在代码中就是这样子

if(小明成绩>90){
    妈妈奖励机器人
}else if(小明成绩>80){
    妈妈不惩罚也不表扬
}else{
    狠狠打一顿!
}

按照小明考的85分,妈妈是不惩罚也不打的。
小结:判断条件是一个布尔值,判断条件1位true时,则执行代码1,否则判断条件2;
条件2为true时,执行代码2,否则判断条件3……
以此类推。没有满足条件是,则执行else后面的语句。

4、switch条件语句
if条件句可以对多个条件进行判断,从而确定执行哪一段代码。switch却和if 不同,他只能对一个条件进行判断,然后在语句中进行匹配,从而确定执行哪一段。通俗的说就是,if语句中,小明考不同的分数,妈妈会给不同的“奖励”;switch语句中,小明考一个分数,妈妈按照分数和事先开好的“奖励”单子对照,确定要给的奖励。
该语句格式如下

switch(){
    case 目标值1:
        执行语句1
        break;
    case 目标值2:
        执行语句2
        break;
    case 目标值n:
        执行语句n
        break;
    default;
        执行语句n+1
        break;
}

default的作用是没有匹配值时候执行该语句,break的作用是,跳出该switch语句。就是说,如果小明考了100,没有break的情况下,妈妈会把所有的“奖励”都给他,包括考低分的打一顿。
如果case后面的语句都是相同的,只需写一遍即可,格式如下

case 1case 2case 3:
    System.out.println("今天上班");

还需要注意的一点是,switch语句中表达式的值只能是byte,short,,char,int。jdk7.0以后支持String类型。

三元运算符

这是一个类似if……else的语句,格式如下

/*判断条件?表达式1:表达式2
if ……else语句变成三元运算符大致如下
*/

int x=0;
int y=1;
int max;
if(x>y){    |       int max=x>y?x:y;
    max=x;  | // 定义变量max x>y吗?如果大于,x赋给max,否则y赋给max
}else{      |
    max=y;  |
}           |

二、循环结构语句
生活中有许多事情需要我们重复做的,比如小明没考好,妈妈打他100下。这样如果换到程序代码中,我们要怎么表达呢?难道要写上相同的代码100次吗?完全不用,只需要使用循环语句就可以了。
循环语句有while循环,do……while循环,for循环三种。循环语句还会涉及到一点嵌套,就是循环中有循环。通俗的说就是小明妈妈打他100下,打到50下累了,喝口水休息一下,然后把剩下的50下又给打了。好,下面一起来看看几种循环的具体写法吧。

while循环语句

while循环语句和if选择语句很像,都是判断条件是否成立,然后执行相应代码块。区别在于,while循环会反复进行条件判断,只要条件成立,{ }内的语句都会执行,直到条件不成立,while语句循环结束。
下面看一下while的具体格式

while(循环条件){
    循环体
}

上面{ }之间的代码被称作循环体,当循环条件为true时,循环体就会执行。
简单例子(又是小明同学…)

int 打小明次数=0
while(打小明次数<=100){
    噼里啪啦(打的真惨)
    打小明次数++
}

上面的过程是这样的:次数=0 所以满足条件,噼里啪啦,然后次数加1,然后继续。直到次数=101,不满足时候,才可停止。

do……while循环语句

do……while循环语句和while循环语句基本相同,唯一的区别在于,do……while循环会先进行一次循环再判断条件。也就是说,无论小明考了多少分,都得先打一巴掌,然后再看分数。do……while循环格式如下

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

成绩低于80,妈妈就打小明变成了这样子。即使小明考100,也得先打一下

do{
    噼里啪啦
}while(成绩低于80)

for循环语句

for循环时最常用的循环,就像是打孩子最常用拖鞋一样。
但是for循环一般是永在循环次数已知的情况下。
for循环的格式稍微有一点绕人,但是只要看懂了就很简单(竖线是分割线)

for(初始化表达式;循环条件;操作表达式){  |   for(①;②;③){
    循环体                          |       ④
}                                  |    }

先执行1 即初始化表达式。
然后执行2,即判断条件,
如果2的为true,则执行4,4执行完再执行3,然后从1开始重复此过程;
如果2的结果为flase,退出循环。

循环嵌套

循环嵌套是指在一个循环语句的循环体中再定义一个循环语句的语法结构。while,do……while,for循环语句都可以进行嵌套,并且他们之间可以相互嵌套。最常见的是for循环中嵌套for循环,格式如下:

for(初始化表达式;循环条件;操作表达式){
    ……
    for(初始化表达式;循环条件;操作表达式){
        执行语句
        ……
    }
    ……
}

这样是有点抽象,我们还是用小明被打的例子来看一下

for(妈妈打小明休息次数=0;休息次数<2;休息次数++){
    for(妈妈打小明次数=0;次数<50;次数++){
        噼里啪啦;
    }
}

这样妈妈打小明50次的时候就可以喝杯水休息一下了。

跳转语句(break,continue)

java中跳转语句有break语句和continue语句,我们分开来看break和continue。

break:

break既可以在switch语句使用,又可以循环语句中使用。
当在switch语句中使用的时候,作用是跳出某个case,并且跳出switch,例子在switch时候已经说过。
当他出现在循环语句中的时候,作用是跳出循环语句,执行后面的代码。
当break语句出现在嵌套循环内层的时候,只能跳出内层循环,如果想跳出外层循环,则需要对外层循环进行标记。就像小明被妈妈打一样,家里来了阿姨只会中断妈妈第一次打小明50次,客人走了还会继续。只有妈妈和阿姨一起逛街才能中断整个打小明的过程。
下面看一下如何做标记

itcast:for(①;②;③){
        for(①;②;③){
        break itcast;   
        }
}

continue:

continue语句在循环语句中,作用是终止本次循环,进行下次循环。
类似于妈妈第一次打小明30次,阿姨走了,剩下的20次妈妈没打。就开始打第二轮的50次了。
continue也可以像break语句一样 通过添加标记的方式结束外层循环。

  • 10
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
以下是一个使用不同选择结构和循环结构的示例程序,用于处理一个整数数组: ```c #include <stdio.h> int main() { int arr[5] = {3, 5, 1, 4, 2}; int i, sum = 0; // 使用if else语句计算数组元素之和 for (i = 0; i < 5; i++) { if (arr[i] % 2 == 0) { sum += arr[i]; } else { sum -= arr[i]; } } printf("Sum (using if else): %d\n", sum); // 使用switch case语句查找数组中的最大值和最小值 int max = arr[0], min = arr[0]; for (i = 1; i < 5; i++) { switch (arr[i]) { case 1: if (arr[i] > max) { max = arr[i]; } if (arr[i] < min) { min = arr[i]; } break; case 2: if (arr[i] > max) { max = arr[i]; } if (arr[i] < min) { min = arr[i]; } break; case 3: if (arr[i] > max) { max = arr[i]; } if (arr[i] < min) { min = arr[i]; } break; case 4: if (arr[i] > max) { max = arr[i]; } if (arr[i] < min) { min = arr[i]; } break; case 5: if (arr[i] > max) { max = arr[i]; } if (arr[i] < min) { min = arr[i]; } break; } } printf("Max: %d, Min: %d (using switch case)\n", max, min); // 使用while循环结构计算数组元素之和 i = 0; sum = 0; while (i < 5) { sum += arr[i]; i++; } printf("Sum (using while): %d\n", sum); // 使用do while循环结构计算数组元素之和 i = 0; sum = 0; do { sum += arr[i]; i++; } while (i < 5); printf("Sum (using do while): %d\n", sum); return 0; } ``` 该程序使用不同的选择结构和循环结构来处理整数数组。首先,使用if else语句计算数组元素之和。然后,使用switch case语句查找数组中的最大值和最小值。接下来,使用while循环结构和do while循环结构计算数组元素之和。最后,将结果打印出来。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值