TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
1. while, _6 B) T. Y5 t2 m3 q
While 循环控制1 _7 E0 k/ Y) w+ k
O+ W- G1 c3 s4 N Scanner console = new Scanner(System.in);3 [ d/ t' A9 n, y/ M
while(布尔表达式){
) |# p4 B( ~; J7 }& o/ @ qty = console.nextInt();
$ r+ m& M. a2 J: D- o& j: l# q if(qty>0 && qty<=5){ //五个以内* S$ g/ W& s1 F# r/ Z
break; //打断, 打断当前循环) C& o( C& t/ c4 b# k# B
}
( I: o. w5 U; E# g }/ m: p, Q& r5 c3 R2 |6 @5 \
4 ~4 L2 t' l+ G% j5 e f2. for 循环(主要用于几次的循环)
1 X4 h& }+ i$ U* J 循环控制
* u9 ~4 I% v' M% Z& G* m( X4 s! f for(初始化表达式;布尔表达式; 递增表达式){
: B: X+ r5 c E; s: B //循环体; d5 p; W2 z3 i/ o
}+ P z* y6 k9 P5 o* J' V+ x
for(;;){( g. N% Y* [6 R: t# ]
}3 `! W- {5 ^* `) Z9 R2 f; d& c2 k( L
for(int a=1, b=3;;){
" C' b2 v; Z. g8 y/ g) f }7 S1 K5 h( u% @- ]3 [
9 f. ] ]- e/ T' O# {/ v
1 Y+ C& p; ^( v6 Q Example:* ?$ v w9 L' d9 `$ u5 L
for (int i = 0; i < array.length; i++){/ [' L; |7 k7 P! s% x( z$ i
System.out.println(i);9 d" w; y3 f& {! r5 q4 P
}
( n2 W0 m2 C8 l6 ~) s7 c D
& d7 S3 m7 d7 W6 I3. do ... while% R6 u: X2 a6 ^! R) O. R
do ... while() 循环控制3 C, W. U/ f j* D' s
do{
+ G7 l) |" X( F/ M# e //循环体
/ N+ S, x; R/ K( z( k4 f }while(布尔表达式);- G" J6 S6 p4 m2 B/ X9 z* c
Example:
# w$ i" p4 B% x! V5 \6 B$ l do{
$ v2 i9 k" c# i$ M6 K System.out.print("输入押注数量:");
( v0 \- V8 v( S bet = console.nextInt();/ i) n; @3 c B% {4 m) T4 c
}while(bet <= 0 || bet > balance); //否定条件, e3 W! x6 s3 c" `- x; w- i
# v5 V2 q. e. D9 [5 @2 i4. java Array' d& r+ I! O8 F
1) 数组变量的声明( z% `6 Z' M) B7 a6 ^/ ]* g
int[] ary; 声明了数组变量 ary, 数组变量是代词,
* v6 U8 h$ J: e) s int ary[]; 为了与C语法兼容的写法, 不建议写法,* F! O! p. o4 S! Z" E( `3 [' x2 E
& a" G2 E x" L# ?, `
2) 数组对象动态初始化9 H% l V1 \4 J6 V+ K* Q* Q
ary = new int[4]; //数组变量引用了具体数组对象, 就是代词+ i: Z, \8 d: x- G' n
指代了具体事务.9 Z: A% I% J* ]% C# P' Y$ D$ Z( i
数组元素是自动初始化的, 自动初始化为"零"值.6 R4 U0 P' C! }1 i3 }
"零"值: 0, 0.0, \u0000, false, null
1 |8 b- h( A/ V$ y) b ary = new int[]{1,2,3}; 直接给出元素的初始化7 }# a- z- [7 `% V
3) 数组对象的静态初始化, 只能用在声明数组变量时候同时初始化1 X1 d, V7 ]6 m( n6 E
* 不能用于赋值语句
1 j/ X8 E8 @" D1 C X3 D q int[] ary = {1,2,3};
! d0 b: Q/ l- m' J3 S4 U ary = {3,4,5,6};//编译错误
5 r+ ]5 t5 V3 S" B8 K3 Q
. w( f8 i& o7 W4 s. T2 t Java关键字: if, public, class, else, while
6 R; p# }( W5 T8 J" h# R5 u 特殊关键字: goto, const
" L. l* S( o! h1 g$ G' p8 R java中 true, false, null 不是关键字, 是字面量!
& Y! H5 t, B" T" N7 R% O
7 W( g H7 s B* w3 _ 4) 数组变量, 数组对象, 数组元素
0 d' ] M' b+ t; u* ?& w, x7 W 如: int[] ary = {1,2,3};
: d4 r( X- I& H7 Q& X4 ` ary 是 数组变量 指代一个具体的数组, 同一个变量指代不同的数组
+ i- D, d" e& X2 g( `. k+ e {1,2,3} 数组对象
" R# O' U6 w, m+ H 1,2,3 是数组元素 ^: g2 |6 L0 k- {! M5 c
: |( V/ R0 c0 ?0 I, R! m
5) 数组元素的访问, 数组对象的大小是固定的,长度是n,下标: 0~n-1 ! M9 G2 `: l0 h' P
A 使用[下标] 访问数组元素% r7 r5 i- o5 p. y% ?
B 越界访问(小于0/大于等于n), 都会发生运行异常) V& K4 H1 c) R A! i
C 使用.length 属性可以获取数组对象长度& n7 a3 |3 J+ V; ~0 r& d
0 I/ S9 H6 j5 p' o1 I- W E
5 数组的复制与动态扩展算法
; o/ E2 }- k" [2 q; s- y$ f& F 1) 数组对象的复制% e) U' y6 y0 M- t, t+ H
8 J7 E1 w6 _) q( G+ \
2) 数组的扩展问题$ [. I6 I' @7 u8 I
1 Java数组对象的大小是固定的, 数组对象是不能扩展的
3 y( Y( X2 }/ E- a 2 利用数组复制到方法可以变通的实现数组扩展8 S9 I$ r, r1 v) ~
3 System.arraycopy() 可以复制数组
% s% _( c3 k/ o+ V1 w; S* B 4 Arrays.copyOf() 可以简便的创建数组副本" P% T! h9 F$ A
5 创建数组副本的同时将数组长度增加就变通的实现了4 {+ ?! m4 A; t# e) j
数组的扩展- S4 |7 O j8 z
8 O4 _# G$ a/ N1 x b. Q 案例1 : 统计一个字符在字符串中的所有位置.4 G/ g7 i1 V/ s( n
字符串: 统计一个字符在字符串中的所有位置: G, z1 c3 O; G0 K0 j
字符: '字'9 \' K/ Q9 {2 j) w: c: c
返回: {4,7}
1 F' V6 t4 X" h/ O0 ^9 X7 K
6 B# _' g7 F9 o5 P* `6) 数组的迭代: 将每个数组元素重复的处理一遍.
4 E( ]2 \' K" p9 a& } for(int i=0; i<ary1.length; i++){8 Z- s% |( x# ~8 D
System.out.print(ary1[i] + " ");
1 L* C$ v$ E) r$ V }/ B. b% ^9 r% a& D$ T9 H
1 Q5 {2 j4 g9 r$ B; J" o |
|