与任何程序设计语言一样,Java使用条件语句和循环结构确定控制流。本文将简单讲解条件、循环和switch。
一、块作用域
块(block),即复合语句。是指由一对大括号括起来的若干条简单的Java语句。块确定了变量的作用域。
比如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public class Code { static { System.out.println( "1" ); } { System.out.println( "2" ); } public Code() { System.err.println( "3" ); } public static void main(String[]args) { new Code(); } } |
注意:不能在嵌套的两个块中声明同名的变量。
二、条件语句
格式1:
1
2
3
4
5
6
7
8
9
10
11
|
if(condition) { statement1 statement2 ........ } |
例如:
1
2
3
4
5
|
if(youSales>=target) { performance="Satisfactory"; bonus=1000; } |
格式2:
if(condition)statement1 else statement2
例如:
1
2
3
4
5
6
7
8
9
10
|
if (youSales>=target) { performance=“Satisfactory”; bonus= 100 + 10 *(youSales-target“); } else { performance=”Unstatisfactory“; bonus= 0 ; } |
三、循环
当条件为true时,while循环执行。
格式1:
while(condition)statemnet
例如:
1
2
3
4
5
6
7
|
while (balance<goal) { balance+=payment; double interest=balance*interestRate/ 100 ; balance+=interest; years++; } |
格式2:
do statement while(condition);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
do { balance+=payment; double interest=balance*interestRate/ 100 ; balance+=interest; year++; System.out.printf( "After year %d,your balance is %,.2f%,year,balance" ); System.out.print( "Ready to retire?(Y/N)" ); input=in.next(); } while (input.equals( "N" )); } |
四、确定循环
for循环语句是支持迭代的一种通用结构,利用每次迭代之后更新的计数器或类似的变量来控制迭代的次数。
格式类似如下:
for(int i=0;i<x.length;i++)
System.out.println(i);
例子4个:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public class ShuZu1 { public static void main(String[]args){ int [][] x={{ 1 , 2 , 2 , 2 , 2 },{ 3 , 3 , 3 , 3 , 3 },{ 4 , 5 ,- 1 , 17 , 55 }}; int result=qiuHe(x); System.out.println( "和是" +result); } public static int qiuHe( int [][]x){ int s= 0 ; for ( int i= 0 ;i<x.length;i++) { for ( int j= 0 ;j<x[i].length;j++) { s+=x[i][j]; } } return s; } } |
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
|
public class ShuZu2 { public static void main(String[]args){ int [][] x= new int [ 7 ][ 7 ]; //生成随机数组,注意没有返回值,另外打印一行字 suiJi(x); System.out.println( "生成的数组是:" ); //显示数组内容,注意没有返回值 showArray(x); //取值 float result=getAvg(x); System.out.println( "平均数是" +result); } static float getAvg( int [][] x){ float s= 0 ; for ( int i= 0 ;i<x.length;i++){ for ( int j= 0 ;j<x[i].length;j++){ s+=x[i][j]; } } return s/(x.length*x[ 0 ].length); } static void suiJi ( int [][]x){ //这里我出错了。返回值写了int型,不应该的。思考一下。 for ( int i= 0 ;i<x.length;i++){ for ( int j= 0 ;j<x[i].length;j++){ x[i][j]=( int )(Math.random()* 10 ); } } } static void showArray( int [][]x){ //这里我出错了。返回值写了int型,不应该的。思考一下。 for ( int i= 0 ;i<x.length;i++){ for ( int j= 0 ;j<x[i].length;j++){ System.out.print(x[i][j]+ "\t" ); // 给数据空格 } System.out.println(); //打印换行 } } } |
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
|
import java.util.Arrays; public class SuZu3{ public static void main(String[] args) { int [] x={ 2 ,- 1 , 7 , 777 , 6 , 764 , 85896 , 65554 , 0 , 874785 , 417825 , 74 }; sort(x, 'n' ); for ( int i= 0 ;i<x.length;i++){ System.out.print(x[i]+ "\t" ); } } //给数组进行选择性排序 //调用API进行升序 static void sort( int []x, char Flag){ if ( 'A' ==Flag){ Arrays.sort(x); } else { for ( int i= 0 ;i<x.length- 1 ;i++){ for ( int j= 0 ;j<x.length- 1 -i;j++){ int temp= 0 ; if (x[j]<x[j+ 1 ]){ temp=x[j]; x[j]=x[j+ 1 ]; x[j+ 1 ]=temp; } } } } } } |
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
|
import java.util.Scanner; public class Suzu4 { public static void main(String[] args) { System.out.println( "请输入" ); //这个命令只能紧贴在Scanner scan = new Scanner(System.in);的上面或下面才有效。 Scanner scan = new Scanner(System.in); //System.out.println("请输入");或者放在Scanner scan = new Scanner(System.in);的下面 String str = scan.nextLine(); // nextLine才是接收一行 char [] s = str.toCharArray(); // 把字符串转换称一个字符数组 scan.close(); int letterCount = 0 ; int numberCount = 0 ; int spaceCount = 0 ; int otherCount = 0 ; for ( int i = 0 ; i < s.length; i++) { if (s[i] >= 'a' && s[i] <= 'z' || s[i] >= 'A' && s[i] <= 'Z' ) { letterCount++; } else if (s[i] >= '1' && s[i] <= '9' ) { numberCount++; } else if (s[i] == ' ' ) { spaceCount++; } else { otherCount++; } } System.out.println( "字母有" + letterCount + "个" ); System.out.println( "数字有" + numberCount + "个" ); System.out.println( "空格有" + spaceCount + "个" ); System.out.println( "其他有" + otherCount + "个" ); } } //ctrl+shift+f 是代码格式化 //ctrl+shift+o 是导包 |
五、多重选择:switch语句
格式类似如下:
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
|
switch (choice) { case 1 : ........ break ; case 2 : ....... break ; ......... //可以再来几个case(用break结束一下) default : ....... break ; } |
注意:
case标签可以是:
* 类型为char、byte、short或int的常量表达式。
* 枚举常量
* 从Java SE 7开始,case标签还可以是字符串字面量。
以上这篇Java使用条件语句和循环结构确定控制流(实例)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。