特别感谢www.liaoxuefeng.com对本站的学习提供帮助

循环

1.if

  • if基本语法
int option = 1;
if (option) {
    ... ...;
}else if (option) {
    ... ...;
}else{
    ... ...;
}
  • if例子
Scanner scanner = new Scanner(System.in);
System.out.print("请输入分数:");
int score = scanner.nextInt();
if (score >= 60){
    System.out.println("你太棒啦,本次考试及格");
}else{
   System.out.println("很遗憾,本次考试不及格,再接再厉哦");
}

2.switch

  • switch基本语法
int option = 1;
switch (option) {
    case 1:
        ... ...;
        break;
    case 2:
        ... ...;
        break;
      ...
     default
        ... ...;
        break;
}
  • switch例子

书写过程一定不能省略break语句,不然未出现意想不到的结果。即输出上一个不带break的内容直到下一个break才跳出。

public class Hello {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int option = 1;
        switch (option) {
            case 1:
                System.out.println("First");
                break;
            case 2:
                System.out.println("Second");
                break;
            case 3:
                System.out.println("Third");
                break;
            default:
                System.out.println("Not number");
                break;
        }
    }
}
  • Java 14新书写方法

java 14switch正式升级为表达式,不再需要break,并且允许使用yield返回值。

  • Java 14基本语法
int option = 1;
switch (option) {
    case 1 -> ... ...;
    case 2 -> ... ...;
    case 3 -> {
        ... ...;  //如果每个子类有多个输出结果,使用大括号`{}`,输出结果书写在大括号内即可。
        ... ...;
    }
    ...
    default -> ... ...;
}
  • Java 14例子
String option = Start;
switch (option) {
    case start -> System.out.println("Start");
    case stop -> System.out.println("Stop");
    case restart -> System.out.println("Restart");
    default -> System.out.println("Usage [start|stop|restart]");
}

大多数时候,在switch表达式内部,我们会返回简单的值。

但是,如果需要复杂的语句,我们也可以写很多语句,放到{...}里,然后,用yield返回一个值作为switch语句的返回值:

/*
暂时还没理解透yield的功能,目前能想到的功能,返回的值作为日志代码,以此来判断执行的结果。
*/
String option = "start";
int res = switch (option) {
    case "start" -> 1;
    case "stop"  -> 2;
    case "restart" -> 3;
    default -> {yield -100;}
};
System.out.println("res = " + res);

3.while

while在条件满足时继续循环,条件不满足时退出循环。

  • while基本语法
while (true) {
... ...;
}
  • while例子
// 计算1加到100的结果,1+2+3+..+100=?
int sum = 0;
int n = 0;
while ( n <= 100 ) {
    sum += n; // 等同于sum=sum+n
    n ++; // n自增一次,等同于n=n+1
}
System.out.println("1加到100的结果为:" + sum);

while循环是先判断循环条件再循环,因此,有可能一次循环都不做。

对于循环条件判断,以及自增变量的处理,要特别注意边界条件。如果上述例子中sum += nn++调换下顺序,那么结果完全是两回事。

for

  • for基本语法
int n=0;
for (n;n<=9;n++;){
    ... ...;
}
  • for例子
//使用for循环计算1至100的和
int sum=0;
for (int n=1;n<=100;n++) {
    sum+=n;
}System.out.println(sum);
  • for练习

For循环经典小练习,打印99乘法表。

int sum = 0;
for (int n=1;n<=9;n++) {
    for (int i=1;i<=n;i++) {
        System.out.printf("%dx%d=%d ",i,n,(i*n));
    }System.out.println();
}
  • for循环遍历数组

for循环经常用来遍历数组,因为通过计数器可以根据索引来访问数组的每个元素:

int ns[] = {1,3,5,7,9};
for (int n = 0;n < ns.length;n++) {
    System.out.println(ns[n]);
}

for循环相比,for each循环的变量n不再是计数器,而是直接对应到数组的每个元素。for each循环的写法也更简洁。但是,for each循环无法指定遍历顺序,也无法获取数组的索引。

int ns[]={1,3,5,7,9};
for (int n : ns) {
    System.out.println(ns[n]);
}
Last modification:September 1st, 2020 at 03:47 pm
If you think my article is useful to you, please feel free to appreciate