Java选择控制语句

java 专栏收录该内容
27 篇文章 0 订阅

2.5 选择控制语句
2.5.1 if else
1.if结构
if选择结构是根据条件判断之后再做处理
在这里插入图片描述

基本的if选择结构:
if ( 条件 ) {
//代码块
}

例如,如果张浩的Java考试成绩大于98分,张浩就能获得一个MP4作为奖励。

在这里插入图片描述

实现代码如下:
import java.util.Scanner;
public class GetPrize {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("输入张浩的Java成绩: "); //提示输入Java成绩
int score = input.nextInt(); //从控制台获取张浩的Java成绩
if ( score > 90 ) { //判断是否大于90分
System.out.println(“老师说:不错,奖励一个MP4!”);
}
}
}
2.if…else if…else 结构
语法:
if(布尔表达式 1){
//如果布尔表达式 1的值为true执行代码
}else if(布尔表达式 2){
//如果布尔表达式 2的值为true执行代码
}else if(布尔表达式 3){
//如果布尔表达式 3的值为true执行代码
}else {
//如果以上布尔表达式都不为true执行代码
}

实例代码:
public class Test {
public static void main(String args[]){
int x = 30;

  if( x == 10 ){
     System.out.print("Value of X is 10");
  }else if( x == 20 ){
     System.out.print("Value of X is 20");
  }else if( x == 30 ){
     System.out.print("Value of X is 30");
  }else{
     System.out.print("这是 else 语句");
  }

}
}
3.嵌套if
使用嵌套的 if…else 语句是合法的。也就是说你可以在另一个 if 或者 else if 语句中使用 if 或者 else if 语句。
语法:
if(布尔表达式 1){
如果布尔表达式 1的值为true执行代码
if(布尔表达式 2){
如果布尔表达式 2的值为true执行代码
}
}
实例:
public class Test {

public static void main(String args[]){
int x = 30;
int y = 10;

  if( x == 30 ){
     if( y == 10 ){
         System.out.print("X = 30 and Y = 10");
      }
   }
}

}

2.5.2 switch case
switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。
switch case 语句语法格式如下:
switch(expression){
case value :
//语句
break; //可选
case value :
//语句
break; //可选
//你可以有任意数量的case语句
default : //可选
//语句
}
表达式expression为整型或字符型。

switch case 执行时,一定会先进行匹配,匹配成功返回当前 case 的值,再根据是否有 break,判断是否继续输出,或是跳出判断。
示例如下:
public class Test {
public static void main(String args[]){
//char grade = args[0].charAt(0);
char grade = ‘C’;

  switch(grade)
  {
     case 'A' :
        System.out.println("优秀"); 
        break;
     case 'B' :
     case 'C' :
        System.out.println("良好");
        break;
     case 'D' :
        System.out.println("及格");
        break;
     case 'F' :
        System.out.println("你需要再努力努力");
        break;
     default :
        System.out.println("未知等级");
  }
  System.out.println("你的等级是 " + grade);

}
}

如果 case 语句块中没有 break 语句时,JVM 并不会顺序输出每一个 case 对应的返回值,而是继续匹配,匹配不成功则返回默认 case。
public class Test {
public static void main(String args[]){
int i = 5;
switch(i){
case 0:
System.out.println(“0”);
case 1:
System.out.println(“1”);
case 2:
System.out.println(“2”);
default:
System.out.println(“default”);
}
}
}
以上代码编译运行结果如下:
default

如果 case 语句块中没有 break 语句时,匹配成功后,从当前 case 开始,后续所有 case 的值都会输出。
public class Test {
public static void main(String args[]){
int i = 1;
switch(i){
case 0:
System.out.println(“0”);
case 1:
System.out.println(“1”);
case 2:
System.out.println(“2”);
default:
System.out.println(“default”);
}
}
}
以上代码编译运行结果如下:
1
2
default

2.6 循环控制语句
2.6.1 while/do while
1.while
while是最基本的循环,它的结构为:
while( 布尔表达式 ) {
//循环内容
}
只要布尔表达式为 true,循环就会一直执行下去。

在这里插入图片描述

特点:先判断,再执行。
示例如下:
public class Test {
public static void main(String args[]) {
int x = 10;
while( x < 20 ) {
System.out.print(“value of x : " + x );
x++;
System.out.print(”\n");
}
}
}
以上实例编译运行结果如下:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19

2.do while
为什么需要do-while循环?
经过几天的学习,老师给张浩一道测试题,让他先上机编写程序完成,然后老师检查是否合格。如果不合格,则继续编写。……
在这里插入图片描述

特点:先执行,再判断

do…while 循环和 while 循环相似,不同的是,do…while 循环至少会执行一次。
do…while 循环的结构如下:
do {
//代码语句
}while(布尔表达式);
注意:布尔表达式在循环体的后面,所以语句块在检测布尔表达式之前已经执行了。 如果布尔表达式的值为 true,则语句块一直执行,直到布尔表达式的值为 false。

示例如下:
public class Test {
public static void main(String args[]){
int x = 10;

  do{
     System.out.print("value of x : " + x );
     x++;
     System.out.print("\n");
  }while( x < 20 );

}
}
以上实例编译运行结果如下:
value of x : 10
value of x : 11
value of x : 12
value of x : 13
value of x : 14
value of x : 15
value of x : 16
value of x : 17
value of x : 18
value of x : 19
2.6.2 for
Java 提供了另一种语句 —— for 循环,使一些循环结构变得更加简单。for循环执行的次数是在执行前就确定的。语法格式如下:
for循环的语法和执行顺序:

在这里插入图片描述

特点:先判断,再执行。

例如,输出100次“好好学习!”。
使用while循环结构:
int i=0;
while(i<100){
System.out.println(“好好学习!”);
i++;
}
使用for循环结构:
for(int i=0;i<100;i++){
System.out.println(“好好学习!”);
}
2.6.3 break和continue
1.break
为什么要使用break?
假如在一次长跑比赛中,当运动员跑到第8圈的时候坚持不下去了,想退出比赛,可以使用break。

for (int i = 0; i<10; i++) {
//跑4000米;
if ( 不能坚持 ) {
break; //退出比赛
}
}

break用于do-while、while、for中时,可跳出循环而执行循环后面的语句。
在这里插入图片描述

例如以下代码:
public class Test {
public static void main(String args[]) {
int [] numbers = {10, 20, 30, 40, 50};

  for(int x : numbers ) {
     // x 等于 30 时跳出循环
     if( x == 30 ) {
        break;
     }
     System.out.print( x );
     System.out.print("\n");
  }

}
}
以上实例编译运行结果如下:
10
20

2.continue
为什么要使用continue?
假如需要循环录入Java课的学生成绩,统计分数大于等于80分的学生人数,如果成绩<80则不执行人数累加,直接执行下一次循环。此时可以使用continue。
continue 适用于任何循环控制结构中。作用是跳过循环体中剩余的语句而执行下一次循环。
在这里插入图片描述

例如以下代码,统计80分以上学生的比例:
import java.util.Scanner;
public class ContinueDemo {
/**
* 统计80分以上学生比例
*/
public static void main(String[] args) {
int score; // 成绩
int total; // 班级总人数
int num = 0; // 成绩大于或等于80分的人数
Scanner input = new Scanner(System.in);
System.out.print("输入班级总人数: ");
total = input.nextInt(); // 输入班级总数
for (int i = 0; i < total; i++) {
System.out.print(“请输入第” + (i + 1) + "位学生的成绩: ");
score = input.nextInt();
if (score < 80) {
continue;
}
num++;
}
System.out.println("80分以上的学生人数是: " + num);
double rate = (double) num / total * 100;
System.out.println(“80分以上的学生所占的比例为:” + rate + “%”);
}
}

  • 0
    点赞
  • 0
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页

打赏作者

qq_49622608

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值