Java 基本语法----流程控制

流程控制

选择结构(分支语句)

分支语句根据一定的条件有选择地执行或跳过特定的语句
Java分支语句分类
  if-else 语句
  switch 语句
if-else语句语法格式

if(布尔表达式){
    语句或语句块;
}
if(布尔表达式) {
    语句或语句块;
}
else if(布尔表达式){
    语句或语句块;
}else {
    语句或语句块;
}

if-else语句应用举例

 1 public class TestAge{
 2   public static void main(String args[]){
 3       TestAge t = new TestAge();
 4       t.age(75);
 5   }
 6   public void age(int age){
 7   if (age< 0) {
 8       System.out.println("不可能!");
 9   }else if(age>250){
10       System.out.println("是个妖怪!");
11   }else {
12       System.out.println("此人芳龄 " + age);
14   }
15 }
 1 //若 age <= 8, 打印 "没上学"
 2 //若 age <= 14, 打印出 "小学生"
 3 //若 age <= 17, 打印 "初中生"
 4 //若 age <= 20, 打印 "高中生"
 5 //若 age <= 24, 打印 "大学生"
 6 //若都不满足, 打印 "大学毕业"
 7
 8 int age = 5;
 9
10 if(age <= 8) {
11     System.out.println("没上学");
12 }
13 if(age <= 14) {
14     System.out.println("小学生");
15 }else if(age <= 17){
16     System.out.println("初中学");
17 }else if(age <= 20){
18     System.out.println("高中生");
19 }else if(age <= 24){
20     System.out.println("大学生");
21 }else{
22     System.out.println("大学毕业");
23 }

if语句练习

1、编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,对它们进行排序(使用 if-else if-else),并且从小到大输出。

 1     System.out.println("请输入三个整数.");
 3     Scanner scanner = new Scanner(System.in);
 4
 5     System.out.print("num1=");
 6     int num1 = scanner.nextInt();
 7
 8     System.out.print("num2=");
 9     int num2 = scanner.nextInt();
10
11     System.out.print("num3=");
12     int num3 = scanner.nextInt();
13
14     System.out.println("您输入的三个整数分别为: " + num1 + ", " + num2 + ", " + num3);
15
16     if(num1 <= num2){
17         if(num3 <= num1){
18             System.out.println(num3 + ", " + num1 + ", " + num2);
19         }else if(num3 >= num2){
20             System.out.println(num1 + ", " + num2 + ", " + num3);
21         }else{
22             System.out.println(num1 + ", " + num3 + ", " + num2);
23         }
25     }else{
26         if(num3 <= num2){
27             System.out.println(num3 + ", " + num2 + ", " + num1);
28         }else if(num3 >= num1){
29             System.out.println(num2 + ", " + num1 + ", " + num3);
30         }else{
31             System.out.println(num2 + ", " + num3 + ", " + num1);
32         }
33     }

2、对下列代码,若有输出,指出输出结果。

 1 int x=2;
 2 int y=3;
 3 if(x>2) {
 4     if(y>2) {
 5         int z=x+y;
 6         System.out.println("z is " + z);
 7     }
 8 }else {
 9     System.out.println("x is " + x);
10 }

switch语句语法格式

switch(表达式){
    case 常量1:
        语句1;
        break;
    case 常量2:
        语句2;
        break;
    case 常量N:
        语句N;
        break;
    [default:
        语句;
        break;]
 } 

switch语句应用举例

 1 public class Test{
 2     public static void main(String args[]){
 3         int i = 1;
 4         switch (i) {
 5             case 0:
 6                 System.out.println("zero");
 7                 break;
 8             case 1:
 9             System.out.println("one");
10             //break;
11         default:
12                 System.out.println("default");
13             break;
14        }
15    }
16 }

switch语句有关规则

switch(表达式)中表达式的返回值必须是下述几种类型之一:int, byte, char, short, 枚举, 字符串;
case子句中的值必须是常量,且所有case子句中的值应是不同的;
default子句是任选的;
break语句用来在执行完一个case分支后使程序跳出switch语句块;

switch语句练习

1、使用switch语句改写下列if语句:

 1 /*
 2     int a = 3;
 3     int x = 100;
 4     if(a==1)
 5         x+=5;
 6     else if(a==2)
 7         x+=10;
 8     else if(a==3)
 9         x+=16;
10     else if(a==4)
11         x+=34;
12 */
13
14     int a = 3;
15     int x = 100;
16
17     switch(a){
18         case 1:
19             x += 5;
20             break;
21         case 2:
22             x += 10;
23             break;
24         case 3:
25             x += 16;
26             break;
27         case 4:
28             x += 34;
29             break;
30         }
31     System.out.println(x);                

2、编写程序:从键盘上读入一个学生成绩,存放在变量score中,根据score的值输出其对应的成绩等级:

  score>=90 等级:A

  70=<score<90 等级: B

  60=<score<70 等级: C

  score<60 等级:D

 1 /*
 2     编写程序:从键盘上读入一个学生成绩,存放在变量score中,根据score的值输出其对应的成绩等级:
 3     score>=90           等级:A
 4     70=<score<90     等级: B
 5     60=<score<70     等级: C
 6     score<60              等级:D
 7 */
 8     Scanner scanner = new Scanner(System.in);
 9     System.out.print("请输入学生的学习成绩, score=");
10     int score = scanner.nextInt();
11
12     switch(score/10){
13         case 10:
14         case 9:
15             System.out.println("A");
16             break;
17
18         case 8:
19         case 7:
20             System.out.println("B");
21             break;
22
23         case 6:
24             System.out.println("C");
25             break;
26
27         default:
28             System.out.println("D");
29     }

3、输入 2017 年的某个月份和日期, 例如 month=4, day=21
  经过程序计算, 打印出输入的月份和日期是 2017 年的第几天. 31+28+31+21

 1 /*
 2  * 输入 2017 年的某个月份和日期, 例如 month=4, day=21
 3  * 经过程序计算, 打印出输入的月份和日期是 2017 年的第几天.  31+28+31+21
 4  */
 5     System.out.print("month:");
 6     int month = scanner.nextInt();
 7
 8     System.out.print("day:");
 9     int day = scanner.nextInt();
10
11     int days = day;
12
13     switch(month - 1) {
14         case 11:
15         days += 30;
16         case 10:
17         days += 31;
18         case 9:
19         days += 30;
20
21         case 8:
22         days += 31;
23         case 7:
24         days += 31;
25         case 6:
26             days += 30;
27         case 5:
28         days += 31;
29
30         case 4:
31         days += 30;
32         case 3:
33         days += 31;
34         case 2:
35         days += 28;
36         case 1:
37             days += 31;
38     }
39     System.out.println(month + "月" + day + "日是 2017 年的第" + days + "天");     

循环结构

循环语句功能
在循环条件满足的情况下,反复执行特定代码
循环语句的四个组成部分
  初始化部分(init_statement)
  循环条件部分(test_exp)
  循环体部分(body_statement)
  迭代部分(alter_statement)

循环语句分类

for 循环
while 循环
do/while 循环

for 循环语句

语法格式

for (初始化表达式; 布尔值测试表达式; 更改表达式){
  语句或语句块;

for循环执行步骤

应用举例

public class ForLoop {
    public static void main(String args[]){
        int result = 0;
        for(int i=1; i<=100; i++) {
            result += i;
        }
        System.out.println("result=" + result);
    }
}

for语句练习

1、从 1 打印到 100;打印 1-100 之间的所有偶数

 1 public class TestFor {
 2     public static void main(String [] args) {
 3     //从 1 打印到 100
 4     /*
 5     for(int i = 1; i <= 100; i++) {
 6         System.out.println(i);
 7     }
 8     */
 9
10     //循环的初始化
11     int i = 1;
12     for(;i <= 100;) {
13         System.out.println(i++);
14     }
15     //打印 1-100 之间的所有偶数.
16     for(int j = 1; j <= 100; j++) {
17         if(j % 2 == 0){
18             System.out.println(j);
19         }
20     }
21 }        

2、编写程序FooBizBaz.java,从1循环到150并在每行打印一个值,另外在每个3的倍数行上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印输出“baz”。

for(int j = 1; j <= 150; j++){
    System.out.print(j);
    if(j % 3 == 0){
        System.out.print(" foo");
    }
    if(j % 5 == 0){
        System.out.print(" biz");
    }
    if(j % 7 == 0){
        System.out.print(" baz");
    }
    System.out.println();
}

效果:

1
2
3 foo
4
5 biz
6 foo
7 baz

15 foo biz
….
105 foo biz baz

3、打印 1-100 之间的所有素数素数: 有且仅有两个正约数的整数. 即 2 ~ i-1 之间没有一个是其约数. 例如 2, 3, 5, 7, 11, ...

 1 public class sushu {
 2     public static void main(String[] args) {
 3     //打印 1-100 之间的所有素数
 4     //素数: 有且仅有两个正约数的整数. 即 2 ~ i-1 之间没有一个是其约数.
 5     //例如 2, 3, 5, 7, 11, ...
 6     //标记一个整数是素数. true 表示是一个素数, false 表示不是素数.
 7     boolean flag = true;
 8
 9     long begin = System.currentTimeMillis();
10
11     for(int i = 2; i <= 100000; i++){
12         flag = true;
13
14         /**
15          * 16
16          *
17          * 2  8
18          * 3
19          * 4  4
20          * 5
21          * 7
22          * 8  2
23          */
24
25         //从 2 循环到 i-1, 检验每一个数是否为 i 的约数.
26         for(int j = 2; j <= Math.sqrt(i); j++){
27             if(i % j == 0){
28                 flag = false;
29             //结束这次循环.
30             break;
31             }
32         }
33         if(flag){
34                 System.out.println(i);
35         }
36     }
37     long end = System.currentTimeMillis();
38     System.out.println("time: " + (end - begin)); //2194   98
39 }

while 循环语句

语法格式
[初始化语句]
while( 布尔值测试表达式){
  语句或语句块;
  [更改语句;]
}
应用举例

 1 public class WhileLoop {
 2     public static void main(String args[]){
 3         int result = 0;
 4         int i=1;
 5         while(i<=100) {
 6             result += i;
 7             i++;
 8         }
 9         System.out.println("result=" + result);
10     }
11 }    

do/while 循环语句

语法格式
[初始化语句]
do{
  语句或语句块;
  [更改语句;]
}while(布尔值测试表达式);

应用举例

 1 public class WhileLoop {
 2     public static void main(String args[]){
 3         int result = 0, i=1;
 4         do{
 5             result += i;
 6             i++;
 7         }while(i<=100);
 8         System.out.println("result=" + result);
 9     }
10 } 

while、do/while语句练习

    int i = 101;
    while(i <= 100){
        System.out.println(i);
    i++;
    }

    //do ... while 一定会执行一次循环体.
    int j = 101;
    do{
    System.out.println("^^" + j++);
    }while(j <= 100);

1、编写程序:求1到100之间所有偶数的和。用for和while语句分别完成。

    /*
    求1到100之间所有偶数的和。用for和while语句分别完成。
    */
    int total = 0;
    int m = 1;
    while(m <= 100){
        if(m % 2 == 0){
        total += m;
    }
    m++;
    }
    System.out.println(total);    

2、编写程序:从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。

/*
从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束输入。
*/
    Scanner scanner = new Scanner(System.in);

    //标记正数的个数
    int x = 0;
    //标记负数的个数
    int y = 0;

    while(true){
        int b = scanner.nextInt();
        if(b > 0){
            x++;
        }else if(b < 0){
            y++;
            }else{
            //退出循环使用 break 语句.
            break;
        }
    }
    System.out.println("正数: " + x);
    System.out.println("负数: " + y)

特殊流程控制语句

break 语句

break语句用于终止某个语句块的执行
{ ……
  break;
  ……
}
break 语句用法举例

public class TestBreak{
    public static void main(String args[]){
        for(int i = 0; i<10; i++){
            if(i==3)
                break;
                System.out.println(" i =" + i);
        }
        System.out.println("Game Over!");
    }
}

break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
label1: { ……
  label2: { ……
    label3: { ……
      break label2;
    ……
    }
  }
}

continue 语句

continue语句用于跳过某个循环语句块的一次执行
continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环

continue语句用法举例

 1 public class ContinueTest{
 2     public static void main(String [] args){
 3
 4     //continue语句用于跳过某个循环语句块的一次执行
 5     for(int i = 1; i <= 100; i++){
 6         if(i % 2 != 0){
 7         //break和continue之后不能有其他的语句,
 8         //因为程序永远不会执行break 和 continue之后的语句。
 9         continue;
10         System.out.println("test");
11     }
12     System.out.println(i);
13     }
14 }

特殊流程控制语句说明

break只能用于switch语句和循环语句中。
continue 只能用于循环语句中。
标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。
break和continue之后不能有其他的语句,因为程序永远不会执行break 和 continue之后的语句。

时间: 2024-10-13 15:29:24

Java 基本语法----流程控制的相关文章

黑马程序员——Java基础语法---流程控制与函数

------<a href="http://www.itheima.com" target="blank">Java培训.Android培训.iOS培训..Net培训</a>.期待与您交流! -------       程序控制流 一.程序流程控制 也称语句,主要有:判断结构.选择结构和循环结构. 1. 判断结构——if if语句的三种格式: a)  if(条件表达式) { 执行语句: } b)  if(条件表达式) { 执行语句: } el

黑马程序员---java基础语法--流程控制与函数

-----------android培训.java培训.java学习型技术博客.期待与您交流!------------ 一.程序流程控制 也称语句,主要有:判断结构.选择结构和循环结构. 1. 判断结构——if if语句的三种格式: a)  if(条件表达式) { 执行语句: } b)  if(条件表达式) { 执行语句: } else { 执行语句: } c)  if(条件表达式) { 执行语句: } else  if (条件表达式) { 执行语句 } …… else { 执行语句: } if

Java基础语法之控制流程

Java基础语法之控制流程 语言的流程控制提供了对程序步骤的基本方法. 三大流程控制语句:顺序.选择.循环 复合结构 复合结构是以一个区块为单位的,由"{"开始"}"结束.复合语句会为局部变量创建一个作用域,该作用域会成为程序的一部分.在这个作用域中变量能够被创建使用,如果这个变量在这个作用域外使用,会发生程序错误.复合结构内可以嵌套多个复合结构. 判断结构 判断结构会根据不同的条件结果执行不同的代码块. If结构 if结构中的条件结构是一个布尔值,在条件满足也就是

Java中的流程控制(二)

关于Java程序的流程控制(二) 关于Java程序的流程控制(二) 3.switch选择语句 switch语句用于将一个表达式的值同许多其他值比较,并按比较结果选择下面该执行哪些语句. switch(表达式){case 取值1: 语句块1 break;--case 取值n: 语句块n break; default: 语句块n+1 break;} 例子:将1~3对应的星期几的英文单词打印出来, int x=2;switch(x){ case 1: System.out.println("Monda

Java中的流程控制(一)

程序的流程控制(一) 关于Java程序的流程控制(一) 从结构化程序设计角度出发,程序有三种结构: 顺序结构 选择结构 循环结构 1.顺序结构 就是程序从上到下一行行执行,中间没有判断和跳转. 2.if条件语句 ① if(条件语句){ 执行语句块} 其中条件语句可以是任何一种逻辑表达式,如果条件语句返回结果为true,则先执行后面大括号对中的执行语句,再顺序执行后面的其他程序代码,反之程序跳过条件语句后面的大括号对中的执行语句. 注:如果大括号中只有一条语句,也可以省略这对大括号 如: int

Java中的流程控制(三)

关于Java中的流程控制 关于Java中的流程控制 4.do while语句 do while语句的功能和while语句差不多,只不过它是在执行完第一次循环后才检测条件表达式的值,这意味着包含在大括号中的程序段至少要被执行一次. do{ 执行语句}while(条件表达式语句); 例子: int x=1;do{System.out.println("x="+x);x++}while(x<3); 程序打印结果如下: x=1x=2 注:do while不管如何都是至少执行一次 5.fo

java学习之流程控制之if

学编程吧java学习之流程控制之if发布了,欢迎大家通过xuebiancheng8.com来访问 java中的流程控制语句主要包括选择语句,循环语句,其中选择语句又包括if语句,switch...case语句,循环语句包括while,do...while和for循环等机构.下面来分析分析if...else的用法 if选择结构又分为if单分支结构,if...else...双分支结构,if...else if....else if ...else等多分支结构 单分支结构,顾名思义只有一个if结构.

java中的流程控制

流程控制 顺序执行流程 条件分支流程 if(布尔表达式) {} if(布尔表达式) {} else{} if(表达式1){} else if(表达式2){} else if ... else{} switch(int型表达式或变量) // byte short int char string(1.7之后) { case 值1: case 值2: case 值3: ... default: } break:跳出switch结构 从JDK7.0开始,switch表达式允许采用String 循环流程

Java数据类型(二)、Java运算符、流程控制

一.程序写作(创建对象的初始化过程) 1.目的/结果:输出一段话"..." 2.步骤: (1)创建一个基础类,main: (2)创建一块内存空间,用来存储这段话 ①先定义属性,name,sex,age等: ②再定义方法,需要重新创建新的class类,但不需要新的ma方法: (3)调用系统方法/库方法println,实现输出结果 ①在原有的类中创建新对象,将新的class类中的方法调用过来: ②运行,输出所有的内容. //---------------------------------