java流程控制语句

一、顺序语句

语句:使用分号分隔的代码称作为一个语句

注:没有写任何代码只是一个分号的时候,也是一条语句,称作空语句

 


二、判断(if…else)

注:如果花括号中只有一条语句,那么花括号可以省略不写

格式一:

if(判断条件){

       执行的代码块1;

       执行的代码块2;

       …;

       执行的代码块n;

}

 

格式二:

if(判断条件){

    执行的代码块1;

    …;

    执行的代码块n;

}else{

    执行的代码块1;

    …;

    执行的代码块n;

}

 

格式三:

if(判断条件1){

        执行的代码块1;

}else  if(判断条件2){

    执行语句;

}else if(判断条件3){

    执行语句;

}

   

例子:

import java.util.Scanner;
//导入包import java.util.Scanner,使用Scanner这个类,固定用法Scanner sc=new Scanner(System.in),int nextInt = sc.nextInt()获取用户输入的数字
 
public class Demo1 {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入一个数:");
    int nextInt = sc.nextInt();
    if (nextInt %2 == 0) {
        System.out.println(nextInt +":是个偶数");
    } else {
        System.out.println(nextInt +":是个奇数");
    }
    System.out.println("over");
 
    }
}
 
 
//运行结果
[[email protected] java]# javac Demo1.java
[[email protected] java]# java Demo1
请输入一个数:
3
3:是个奇数
over

 

[[email protected] java]# cat Demo2.java
import java.util.Scanner;
public class Demo2 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数:");
        double score = sc.nextDouble();
        char grade;
        if (score >=90) {
            grade = 'A';
        }
        else if (score >= 80) {
            grade = 'B';
        }
        else if (score >= 60) {
            grade = 'C';  
        }
        else {
            grade = 'D';
        }
        System.out.println(grade);
    }
 
}
 
//运行结果
[[email protected] java]# java Demo2
请输入一个数:
78.4
C

 

import java.util.Scanner;
public class Demo3 {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入年份:");
    int year = sc.nextInt();
    boolean isLeapYear = (year %4 == 0);
    isLeapYear = isLeapYear && (year %100 != 0);
    isLeapYear = isLeapYear || (year %400 ==0);
    if (isLeapYear) {
        System.out.println(year +":是润年");
    } else {
        System.out.println(year +":是平年");
    }
   
}
 
}
 
//运行结果
[[email protected] java]# java Demo3
请输入年份:
2018
2018:是平年

 

 

三、选择判断语句(switch)

格式:

switch(表达式)

{

    case 取值1:

       执行语句;

       break;

    case 取值2:

       执行语句;

       break;

    …...

    default:

       执行语句;

       break;

}

switch语句特点:

1)switch语句选择的类型只有四种:byte,short,int,char;

2)case之间与default没有顺序,先判断所有的case,没有匹配的case执行default;

3)switch语句停止的条件是:遇到了break关键字或者结束switch语句的大括号;

4)如匹配的case或者default没有对应的break,那么程序会继续向下执行,直到遇到break或者switch结尾结束;

5)switch case中的值必须要与switch表达式的值具有相同的数据类型

 

例子:

[[email protected] java]# cat Demo4.java
import java.util.Scanner;
public class Demo4 {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    double x = sc.nextDouble();
    String z = sc.next();
    double y = sc.nextDouble();
    switch (z) {
    case "+":
        System.out.println("x+y=" +(x+y));
        break;
    case "-":
        System.out.println("x-y=" +(x-y));
        break;
    case "*":
        System.out.println("x*y=" +(x*y));
        break;
    case "/":
        System.out.println("x/y=" +(x/y));
        break;
    default:
        System.out.println("不靠谱");
        break;
    }
   
    }
}
 
//运行结果
[[email protected] java]# java Demo4
4
+
5
x+y=9.0

 

 

四、while循环

说明:先判断条件,只有条件满足才执行循环体

格式:

while(条件表达式)

{

执行语句;

}

  

例子

[r[email protected] java]# cat Demo5.java
import java.util.Scanner;
public class Demo5 {
public static void main(String[] args) {
int num = (int)(Math.random()*100)+1;
Scanner sc = new Scanner(System.in);
int guessNum = -1;
 
while (guessNum != num) {
    System.out.println("请输入1-100之间的数:");
    guessNum = sc.nextInt();
    if ( guessNum == num) {
       System.out.println("中了!");
 
    } else if ( guessNum > num) {
       System.out.println("值大了!");
 
    } else {
       System.out.println("值小了!");
 
    }
}
 
}
}
 
//运行结果
[[email protected] java]# javac Demo5.java
[[email protected] java]# java Demo5
请输入1-100之间的数:
12
值小了!
请输入1-100之间的数:

 

 

五、do while循环

说明:先执行循环体,再判断条件,条件满足,再继续执行循环体

特点:条件无论是否满足,循环体至少被执行一次

格式

do

{

    执行语句;

}while(条件表达式);

 

例子

[[email protected] java]# cat Demo6.java
import java.util.Scanner;
public class Demo6 {
public static void main(String[] args) {
int num = (int)(Math.random()*100)+1;
Scanner sc = new Scanner(System.in);
int guessNum = -1;
int count = 0;
 
do {
    System.out.println("请输入1-100之间的数:");
    guessNum = sc.nextInt();
    if ( guessNum == num) {
       System.out.println("中了!");
 
    } else if ( guessNum > num) {
       System.out.println("值大了!");
 
    } else {
       System.out.println("值小了!");
 
    }
    count++;
} while ( guessNum != num);
 
System.out.println("要猜的数字是:" +num +" 你一共猜了:" +count +"次");
 
}
}
 
//运行结果
[[email protected] java]# javac Demo6.java
[[email protected] java]# java Demo6
请输入1-100之间的数:
10
值大了!
请输入1-100之间的数:
5
值大了!
请输入1-100之间的数:
4
值大了!
请输入1-100之间的数:
2
中了!
要猜的数字是:2 你一共猜了:4次

 

 

六、for循环

格式:

for(初始化表达式;循环条件表达式;循环后的操作表达式) {

       执行语句;

}

  

例子:

[[email protected] java]# cat Demo7.java
public class Demo7 {
    public static void main(String[] args) throws InterruptedException {
    for (int i=1;i<=9;i++) {
        for (int j=1;j<=i;j++) {
            System.out.print(i +"*" +j +"=" +(i*j) +"\t");
            Thread.sleep(1000);
            }   
        System.out.println(" ");
        }
    }
}
 
 
//运行结果
[[email protected] java]# javac Demo7.java
[[email protected] java]# java Demo7
1*1=1   
2*1=2  2*2=4   
3*1=3  3*2=6  3*3=9   
4*1=4  4*2=8  4*3=12 4*4=16  
5*1=5  5*2=10 5*3=15 5*4=20 5*5=25  
6*1=6  6*2=12 6*3=18 6*4=24 6*5=30 6*6=36  
7*1=7  7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49  
8*1=8  8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64  
9*1=9  9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81

 

 

七、break、continue关键字

break:终止语句后面的语句

continue:跳出本循环,执行下一次循环

注:如果continue出现在循环的末尾(最后一条语句),那么可以省略

 

猜你喜欢

转载自blog.51cto.com/huangzp/2107725