基本结构(二)


基本结构(二)

结构分类

  • 顺序结构:从上向下,依次执行
  • 选择结构:根据实际情况选择一条分支执行
  • 循环结构:在满足一定条件下,可以重复执行的语句

选择结构

分类

  • if语句
  • switch语句

if语句

格式1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
/*
if(布尔值的表达式){
//要执行的语句
}
*/
//布尔表达式值为true。则执行;为false,不执行
//例:
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
int age=scanner.nextInt();
if(age > 18){
System.out.println("已成年");
}
}
}

格式2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/*
if(布尔值的表达式){
//布尔表达式为true,要执行的语句
}else{
//布尔表达式为false,要执行的语句
}
*/
//例:
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
int age=scanner.nextInt();
if(age > 18){
System.out.println("已成年");
}else{
System.out.println("未成年");
}
}

}

格式3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*
if(布尔值表达式){
//语句体1
}else if{
//语句体2
}else{
//语句体3
*/
//例:
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入年龄:");
int age=scanner.nextInt();
if(age < 18){
System.out.println("未成年");
}else if(age >= 18 && age < 30){
System.out.println("青年");
}else if(age >= 30 && age < 50)
{
System.out.println("中年");
}else{
System.out.println("老年");
}
}
}

switch语句

格式

1
2
3
4
5
6
7
8
9
10
11
12
switch(值){
case 值1:
语句
break;
case 值2:
语句
break;
……
default:
语句
break;
}

执行流程:先看switch括号的值,然后与case后值匹配,有则执行相关case后语句,否则执行default控制的语句。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.util.Scanner;
public class Test{
public static void main(String[] args){
Scanner scanner=new Scanner(System.in);
System.out.print("请输入数字:");
int a=scanner.nextInt();
switch(a){
case 0:
System.out.println("zero");
break;
case 1:
System.out.println("one");
break;
case 2:
System.out.println("two");
break;
default:
System.out.println("其他");
break;
}
}
}

  • case后必须是常量
  • switch后面的值只能是byte,short,int,字符,字符串,枚举
  • break可加可不加,当程序执行到某个case后的代码,未遇到break时,就会一直执行
  • default可省,但尽量加上

循环语句

  • for循环语句
  • while循环语句
  • do…while循环语句

for循环

格式:

1
2
3
4
for(初始化表达式1;判断表达式(boolean)2;迭代部分4)
{
循环体3
}

例子

打印0-10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class He{
public static void main(String[] args){
for(int i=0;i<=10;i++){
System.out.println(i);
}
}
}
/*运行结果
0
1
2
3
4
5
6
7
8
9
10
*/
打印1-100之间偶数的和
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class Test{
public static void main(String[] args){
int sum=0;
for(int i=1;i<=100;i++){
if(i%2==0){
sum+=i;
}
}
System.out.println(sum);
}
}
/*运行结果
2550
*/
打印100-999之间的所有水仙花数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Test{
public static void main(String[] args){
int a=0;
int b=0;
int c=0;
for(int i=100;i<=999;i++){
a=i%10;
b=i/10%10;
c=i/100;
if((a*a*a+b*b*b+c*c*c)== i){
System.out.println(i);
}
}
}
}
/*运算结果
153
370
371
407
*/

while循环

格式:

1
2
3
4
while(循环条件){
循环体
迭代部分
}

例子

打印1-10
1
2
3
4
5
6
7
8
9
public class Test{
public static void main(String[] args){
int i=1;
while(i<=10){
System.out.println(i);
i++;
}
}
}

do…while循环

格式:

1
2
3
4
do{
循环语句;
控制条件语句;
}while(boolean);

while循环和do…while循环的区别

while语句先判断后执行,循环体可能不执行。
do…while语句先执行后判断,循环体至少执行一次。

关键字continue,break和return

break

  1. 跳出switch语句。
  2. 当break关键字用于循环时,会终止循环
  3. 可用于父循环,给父循环起别名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Test{
public static void main(String[] args){
b:for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
if(j%3==0){
break b;
}
System.out.print(j+"\t");
}
System.out.println();
}
}
}
/*
1 2
*/

continue

  1. continue作用是结束本次循环,进入下一次循环。
  2. 可用于父循环,给父循环起别名
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Test{
public static void main(String[] args){
b:for(int i=1;i<=5;i++){
for(int j=1;j<=5;j++){
if(j%3==0){
continue b;
}
System.out.print(j+"\t");
}
System.out.println();
}
}
}
/*
1 2 1 2 1 2 1 2 1 2
*/

return

  1. 结束当前方法
  2. 结束当前方法并返回指定结果

循环嵌套

一个循环当另一个循环的循环体

例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
//九九乘法表
public class Test{
public static void main(String[] args){
for(int i=1;i<=9;i++){
for(int j=1;j<=i;j++){
System.out.print(j+"*"+i+"="+i*j+"\t");
}
System.out.println();
}
}
}
/*运算结果
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
*/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
//打印1000内所有素数,每行5个
public class Test{
public static void main(String[] args){
int count=0;
for(int i=2;i<=1000;i++){
boolean flag=true;
for(int j=2;j<=i/2;j++){
if(i%j==0){
flag=false;
break;
}
}
if(flag==true){
System.out.print(i+"\t");
count++;
if(count%5==0)
{
System.out.println();
count=0;
}
}
}
}
}
/*
2 3 5 7 11
13 17 19 23 29
31 37 41 43 47
53 59 61 67 71
73 79 83 89 97
101 103 107 109 113
127 131 137 139 149
151 157 163 167 173
179 181 191 193 197
199 211 223 227 229
233 239 241 251 257
263 269 271 277 281
283 293 307 311 313
317 331 337 347 349
353 359 367 373 379
383 389 397 401 409
419 421 431 433 439
443 449 457 461 463
467 479 487 491 499
503 509 521 523 541
547 557 563 569 571
577 587 593 599 601
607 613 617 619 631
641 643 647 653 659
661 673 677 683 691
701 709 719 727 733
739 743 751 757 761
769 773 787 797 809
811 821 823 827 829
839 853 857 859 863
877 881 883 887 907
911 919 929 937 941
947 953 967 971 977
983 991 997
*/

Author: ljs
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source ljs !
评论
  TOC