Java第三章总结

3.1程序结构

由顺序.选择.循环组成的结构。

如上图程序结构,而由于结构判断导致结果不同,程序结束会得到true或者false相对应的结果。

public static void main(String[] args) {
    System.out.println("请输入一个数字:");
    Scanner input = new Scanner(System.in);
    int num = input.nextInt(); // 接收键盘输入数据
    // 判断用户输入的数据是否大于100

    if (num > 100) {
        System.out.println("输入的数字大于100");
    }
    // 判断用户输入的数据是否等于100
    if (num == 100) {
        System.out.println("输入的数字等于100");
    }
    // 判断用户输入的数据是否小于100
    if (num < 100) {
        System.out.println("输入的数字小于100");
    }

3.2条件语句

1.if

if语句是判断句其后面的表达式要么为true要么为false。

如果if后面的布尔表达式为true那么执行其后的语句,如果为false则不执行后面的语句

2.if....else 

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

public static void main(String[] args) {
    int num1 = 50;
    int num2 = 34;
    // 如果num1等于num2
    if (num1 == num2) {
        System.out.println("num1等于num2");
    }
    // 如果num1大于num2
    if (num1 > num2) {
        System.out.println("num1大于num2");
    } else {
        // 否则就是num1小于num2
        System.out.println("num1小于num2");
    }
}

3.if....else if 

而if....else if这种多分支语句则是满足某种条件就进行某种处理语句;如果满足别的条件,则进行其的处理;

 

public static void main(String[] args) {
    int num1 = 50;
    int num2 = 34;
    if (num1 == num2) { // 如果num1等于num2
        System.out.println("num1等于num2");
    } else if (num1 > num2) { // 如果num1大于num2
        System.out.println("num1大于num2");
    } else { // 否则就是小于
        System.out.println("num1小于num2");
    }

4.嵌套if语句的使用

if(表达式1) {
    if(表达式2) {
        语句块1;
    } else {
        语句块2;
    }
} else {
    if(表达式3) {
        语句块3;
    } else if(表达式4) {
        语句块4;
    } else {
        if(表达式n) {
            语句块n;
        } else {
            语句块n+1;
        }
    }
}

public static void main(String[] args) {
    String today = "周末";
    String weather = "晴朗";
    if (today.equals("周末")) {
        if (weather.equals("晴朗")) {
            System.out.println("去室外游乐场游玩");
        } else {
            System.out.println("去室内游乐场游玩");
        }
    } else {
        System.out.println("去上班");
    }
}

 

3.2.2swich多分支语句

switch(表达式) {
    case 值1:
        语句块1;
        break;
    case 值2:
        语句块2;
        break;
    …
    case 值n:
        语句块n;
        break;
    default:
        语句块n+1;
    break;
}

1.switch
表示“开关”,这个开关就是 switch 关键字后面小括号里的值,小括号里要放一个整型变量或字符型变量。表达式必须为 byte,short,int,char类型
2.case
表示“情况,情形”,case 标签可以是:
类型为 char、byte、 short 或 int 的常量表达式。
枚举常量。
3.default
表示“默认”,即其他情况都不满足。default 后要紧跟冒号,default 块和 case 块的先后顺序可以变动,不会影响程序执行结果。通常,default 块放在末尾,也可以省略不写。
4.break
表示“停止”,即跳出当前结构。
 
 
如果在 case 分支语句的末尾没有 break 语句,有可能触发多个 case 分支。那么就会接着执行下一个 case 分支语句。这种情况相当危险,常常会引发错误。为此,我们在程序中从不使用 switch 语句。

public static void main(String[] args) {
    System.out.println("请输入座位号码:");
    Scanner sc = new Scanner(System.in);
    int num = sc.nextInt();
    switch (num) {
    case 8:
        System.out.println("恭喜你,获得了三等奖!");
        break;
    case 88:
        System.out.println("恭喜你,获得了二等奖!");
        break;
    case 888:
        System.out.println("恭喜你,获得了一等奖!");
        break;
    default:
        System.out.println("谢谢参与!");
        break;
    }
}

 

3.3循环语句

3.3.1while循环语句

while(条件表达式) {
    语句块;
}

public static void main(String[] args) {
    int i = 1;
    int n = 1;
    while(i <= 10) {
        n=n*i;
        i++;
    }
    System.out.println("10的阶乘结果为:"+n);
}

 

 3.3.2 do...while循环语句

   do {
    语句块;
}while(条件表达式);

public static void main(String[] args) {
    int bookIndex = 1;
    do {
        System.out.print(bookIndex+"\t");
        if(bookIndex%10 == 0) {
            System.out.println();
        }
        bookIndex++;
    }while(bookIndex<51);

 

 3.3.3 while与do...while比较

 可以通过设置起始循环条件不成立的循环语句来比较观察while与do...while的不同,而用表达式变量设置i<1,明显循环条件不成立;

3.3.4 for循环语句

for(条件表达式1;条件表达式2;条件表达式3) {
    语句块;
}

 

for 循环和 while、do while 循环不一样:由于 while、do while 循环的循环迭代语句紧跟着循环体,因此如果循环体不能完全执行,如使用 continue 语句来结束本次循环,则循环迭代语句不会被执行。但 for 循环的循环迭代语句并没有与循环体放在一起,因此不管是否使用 continue 语句来结束本次循环,循环迭代语句一样会获得执行。
 

有四种可能,其一表达式一为空,其二表达式二为空,其三表达式三为空,其四则是全部表达式为空。

如图以下为各个循环语句的比较

public static void main(String[] args) {
    int sum = 0;
    for (int i = 1; i < 11; i++) {
        sum = sum + i;
    }
    System.out.println(sum);
}
public static void main(String[] args) {
    int sum = 0;
    int i = 1;
    do {
        sum = sum + i;
        i++;
    } while (i < 11);
    System.out.println(sum);
}
public static void main(String[] args) {
    int sum = 0;
    int i = 1;
    while (i < 11) {
        sum = sum + i;
        i++;
    }
    System.out.println(sum);
}

 可以看的出三种循环结构的例子答案都为55. 

3.3.5 foreach语句

for(类型 变量名:集合) {
    语句块;
}

其中,“类型”为集合元素的类型,“变量名”表示集合中的每一个元素,“集合”是被遍历的集合对象或数组。每执行一次循环语句,循环变量就读取集合中的一个元素

// 声明并初始化数组
int[] numbers = { 43, 32, 53, 54, 75, 7, 10 };
System.out.println("----for----");
// for语句
for (int i = 0; i < numbers.length; i++) {
    System.out.println("Count is:" + numbers[i]);
}

需首先初始化数组来表示。

3.3.6循环语句的嵌套

循环有for.while.do.....while三种方式,三种循环可以互相嵌套列。

3.4 跳转语句

3.4.1 break语句

使用 break 语句直接强行退出循环(break 不带标签)

public static void main(String[] args) {
    int score; // 每门课的成绩
    int sum = 0; // 成绩之和
    boolean con = true; // 记录录入的成绩是否合法
    Scanner input = new Scanner(System.in);
    System.out.println("请输入学生的姓名:");
    String name = input.next(); // 获取用户输入的姓名
    for (int i = 1; i <= 6; i++) {
        System.out.println("请输入第" + i + "门课程的成绩:");
        score = input.nextInt();// 获取用户输入的成绩
        if (score < 0) { // 判断用户输入的成绩是否为负数,如果为负数,终止循环
            con = false;
            break;
        }
        sum = sum + score; // 累加求和
    }
    if (con) {
        System.out.println(name + "的总成绩为:" + sum);
    } else {
        System.out.println("抱歉,分数录入错误,请重新录入!");
    }
}

3.4.2 continue语句

continue语句则是针对break语句的补充,不是立即跳出循环体语句而且跳过本次循环结束前的语句,回到循环的条件测试部分,重新开始执行循环。continue 语句类似于 break 语句,但它只能出现在循环体中。它与 break 语句的区别在于:continue 并不是中断循环语句,而是中止当前迭代的循环,进入下一次的迭代。简单来讲,continue 是忽略循环语句的当次循环。

int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
for (int i = 0; i < numbers.length; i++) {
    if (i == 3) {
        continue;
    }
    System.out.println("Count is: " + i);
}

 

3.5.小结

任何编程语言中最常见的程序结构就是顺序结构。顺序结构就是程序从上到下逐行的执行,中间没有任何判断和跳转。
 
如果 main 方法的多行代码之间没有任何流程控制,则程序总是从上向下依次执行,排在前面的代码先执行,排在后面的代码后执行。这意味着:如果没有流程控制,Java 方法里的语句是一个顺序执行流,从上向下依次执行每条语句。
 
不论哪一种编程语言,都会提供两种基本的流程控制结构:分支结构和循环结构。分支结构用于实现根据条件来选择性地执行某段代码,循环结构则用于实现根据循环条件重复执行某段代码。
 
Java 同样提供了这两种流程控制结构的语法,Java 提供了 if 和 switch 两种分支语句,并提供了 while、do while 和 for 三种循环语句。一般写循环语句时,分以下三步走:
定义初始值
设置判断条件
初始值变化
 
除此之外,java 还提供了一种新的循环:foreach 循环,能以更简单的方式来遍历集合、数组的元素。
 
Java 还提供了 break、continue 和 return 来控制程序的循环结构,作用如下:
break:表示跳出当前层循环
continue:表示跳出本次循环,进入下一次循环
return:跳出当前方法的循环
 
当在实现某个功能语句时,如果需要通过某一个条件去判断,则用选择结构。当实现某个功能需要通过循环去实现,则用循环结构。当然循环和选择是可以相互嵌套的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值