Java学习之==>条件判断、循环控制

一、条件判断

1、if-else

示例:

/**
 * 第1种,1个分支
 */
public void case1() {

  int age = 15;
  if (age > 18) {
    System.out.println("成年人");
  }
}

/**
 * 第2种,2个分支
 */
public void case2() {

  int age = 15;
  if (age > 18) {
    System.out.println("成年人");
  } else {
    System.out.println("未成年人");
  }
}

/**
 * 第3种,多个分支
 */
public void case3() {
  int num = 0;
  if (num > 10) {
    System.out.println("");
  } else if (num > 20) {
    System.out.println("");
  } else if (num > 30) {
    System.out.println("");
  } else if (num > 40) {
    System.out.println("");
  } else if (num > 50) {
    System.out.println("");
  } else {
    System.out.println("");
  }
}

2、switch-case

示例:

/**
 * 字符串数据作为表达式
 *
 * break关键字
 *
 * default关键字
 *
 * 可以作为switch表达式的数据类型: byte,short,char,int,枚举,String
 */
public void case1() {
  String str = "你好";
  switch (str) {
    case "你好":
      System.out.println("跟我打招呼");
      break;
    case "尼玛":
      System.out.println("这是要干架");
      break;
    case "嘿嘿嘿":
      System.out.println("这可能是要搞基");
      break;
    default:
      System.out.println("不懂你要说啥");
  }
}

/**
 * 多个常量落进相同的逻辑处理
 */
public void case2() {
  // type=1, 支付宝,
  // type=2, 微信
  // type=3, 京东
  // type=4, 易宝
  int type = 4;
  switch (type) {
    case 1:
    case 2:
    case 3:
      System.out.println("互联网支付");
      break;
    case 4:
    case 5:
    case 6:
    case 7:
      System.out.println("非互联网支付");
      break;
    default:
      System.err.println("出错啦, 不支持的类型");
  }
}

总结:

相同点

  • 都是一种逻辑分支的处理,语义: 要么你,要么我,要么他
  • 都有兜底的语句,if是else, switch是default

不同点

  • if-else 是一个范围的判断,如 小于10,大于100
  • switch-case 是精确的等值分支

注意

  • 使用switch的都可以使用if-else改写,反之不成立
  • 逻辑要兜住, else, default很重要

二、循环控制

1、for循环

 示例:

/**
 * @author Luolei
 * @date 2019/8/24
 */
public class Test1 {

/**
 * 最基本的循环,打印1到100内的偶数
 */
public void case1() {
  for (int i = 2; i <= 100; i += 2) {
    System.out.println(i);
  }
}

/**
 * 死循环
 */
public void case2() {
  for (; ; ) {
    System.out.println("哈哈哈");
  }
}

/**
 * continue
 *
 * break
 */
public void case3() {
  for (int i = 0; i <= 10; i++) {
    System.out.println("yes");

    if (i % 2 == 0) {
      // 结束当前循环,进入下一次循环
      continue;
    }
    if (i == 9) {
      // 跳出循环
      break;
    }
    System.out.println(i);
  }
}

/**
 * 循环一个数组或list
 */
public void case4() {
  int[] arr = {1,2,3,4};
  for (int i : arr) {
    System.out.println(i);
  }
}

2、while循环

示例:

/**
 * 最基本的循环,打印1到10
 */
public void case1() {
  // init
  int i = 1;

  // test
  while (i <= 10) {

    // body
    System.out.println(i);

    // update
    i++;
  }
}

/**
 * 死循环,条件没有结束的时候
 */
public void case2() {

  while (true) {
    System.out.println("死循环");
  }
}

/**
 * continue && break
 */
public void case3() {

  int i = 1;
  while (i <= 100) {

    if (i % 2 == 0) {
      i++;
      // 结束当前循环,进入下一次循环
      continue;
    }
    if (i == 9) {
      // 跳出循环
      break;
    }
    System.out.println(i);
    i++;
  }
}

3、do-while循环

示例:

/**
 * 最基本的循环,打印1到10
 */
public void case1() {
  // init
  int num = 0;

  do {
    // body
    System.out.println("进入循环体");

    // update
    num++;
  } while (num < 10);
}

/**
 * 死循环
 */
public void case2() {
  // init
  int num = 1;

  do {
    // body
    System.out.println("进入循环体");

    // update
  } while (num == 1);
}

/**
 * continue && break
 */
public void case3() {

  // init
  int num = 1;

  // body
  do {
    System.out.println("进入循环体");
    if (num % 3 == 0 ) {
      num++;
      continue;
    }
    if (num % 5 == 0 ) {
      break;
    }
    num++;
    // update
  } while (num <= 100);
}

总结:

组成

  • 循环控制均可抽象成四部分
    • init        初始化
    • test       条件测试
    • body     循环体代码
    • update  迭代变更

注意

  • 一定要注意循环的退出条件,不要造成死循环
  • 即使不死循环,也要注意循环的次数
  • do-while至少需要执行一次然后再判断条件

猜你喜欢

转载自www.cnblogs.com/L-Test/p/11350798.html
今日推荐