java 基本语法与流程控制_Java 基本语法----流程控制

流程控制

选择结构(分支语句)

分支语句根据一定的条件有选择地执行或跳过特定的语句

Java分支语句分类

if-else 语句

switch 语句

if-else语句语法格式

if(布尔表达式){

语句或语句块;

}if(布尔表达式) {

语句或语句块;

}else if(布尔表达式){

语句或语句块;

}else{

语句或语句块;

}

if-else语句应用举例

1 public classTestAge{2   public static voidmain(String args[]){3    TestAge t = newTestAge();4    t.age(75);5   }6   public void age(intage){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 = newScanner(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 classTest{2 public static voidmain(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=

60=

score<60 等级:D

1 /*

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

8 Scanner scanner = newScanner(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=213 * 经过程序计算, 打印出输入的月份和日期是 2017 年的第几天. 31+28+31+214 */

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循环执行步骤

fc28ed5f4537597b91e4410d7c853b0c.png

应用举例

public classForLoop {public static voidmain(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 classTestFor {2 public static voidmain(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 classsushu {2 public static voidmain(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 * 1616 *17 * 2 818 * 319 * 4 420 * 521 * 722 * 8 223 */

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 classWhileLoop {2 public static voidmain(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 classWhileLoop {2 public static voidmain(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= newScanner(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 classTestBreak{public static voidmain(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 classContinueTest{2 public static voidmain(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之后的语句。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值