TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
1. while
/ L( l) h# d$ x1 b) _: x While 循环控制" O& K4 L# i4 o% Y) s: ]5 C
; \) R) y, v3 i- `5 o7 f
Scanner console = new Scanner(System.in);
" c0 s& H3 u/ A while(布尔表达式){4 Y) [3 r N( O1 c- _( f# Q. N
qty = console.nextInt();/ w3 w* R2 y5 @+ _6 r0 G! r4 L
if(qty>0 && qty<=5){ //五个以内9 D! A9 m, ]( }$ n$ q+ K
break; //打断, 打断当前循环
1 t M6 E X, u( g- M' H }
, X5 q O2 Z4 }' v# ~+ n- J }
' I& Q+ c0 V& [. `7 w
8 o+ E: n) V3 y$ V; @0 z i2. for 循环(主要用于几次的循环)
( q9 y0 [: `/ I, o: P0 Y 循环控制
$ C! t3 c" p% o for(初始化表达式;布尔表达式; 递增表达式){
5 F4 F, C+ w* X7 r //循环体
@9 T N% b' M7 L6 s; H+ ]) [, A4 N }
n: V; I. G- V+ o" v, g( _' E for(;;){7 R7 k5 r5 O$ f" s0 `2 Q
}: S9 d+ k) b f
for(int a=1, b=3;;){3 l7 F" w+ }- l* D& t
}
% T* H7 R2 o% W& z6 G) m$ C! t6 g
+ I6 Y. a f- n) J4 X* t
$ {# m: U9 G0 F. a Example:
% i0 I2 u, G" H for (int i = 0; i < array.length; i++){
1 Q. a1 A) K+ s/ O; ^+ p System.out.println(i);
( D! S- Q: ?' t+ J- E& u; \ }
% s2 L* t, {2 n- B7 _ B* z! ` m& M1 x7 g% H& q( p
3. do ... while9 j: W. g0 ?( k6 t* j
do ... while() 循环控制3 u) S e; \8 W; h! f$ p
do{
6 d0 F# X$ f9 j' w //循环体3 M7 r% {& r5 Q4 D/ n9 I) p
}while(布尔表达式);
$ m0 m3 w6 D" q+ `) B Example:
. N# _ C! ], V2 z$ Y: z) z do{
/ M! [9 ~$ |) S# g System.out.print("输入押注数量:");, F% u7 h% h; } T+ ?! l' a; K
bet = console.nextInt();7 \/ j' `% ^" r+ A( N# M0 k
}while(bet <= 0 || bet > balance); //否定条件$ L# A$ T$ v2 f- s
$ V$ {* \ [* Q. V5 ]' l4. java Array, s6 Q0 u7 h4 O2 R' b" a' I
1) 数组变量的声明
1 _ e' [1 |6 t/ x. K int[] ary; 声明了数组变量 ary, 数组变量是代词,
! k3 S- U5 p) o7 q int ary[]; 为了与C语法兼容的写法, 不建议写法,
\" ~: }# J' S9 {' E+ [9 v. b: v* D6 z
2) 数组对象动态初始化 [: D, i# l( j% P
ary = new int[4]; //数组变量引用了具体数组对象, 就是代词
& Y! N2 ^9 ?+ b3 z" o" K, L: [- q 指代了具体事务.
R7 o7 q/ X4 I) \ ~; T/ ] 数组元素是自动初始化的, 自动初始化为"零"值.
8 d4 w+ N3 t0 B" r) T( e' { "零"值: 0, 0.0, \u0000, false, null
5 L4 b: i1 a5 G* Z h, P* ~3 @5 v- D; U ary = new int[]{1,2,3}; 直接给出元素的初始化2 s6 h3 @/ s2 P
3) 数组对象的静态初始化, 只能用在声明数组变量时候同时初始化
2 y/ X! O4 c" x' ` * 不能用于赋值语句1 i' t1 S5 {# s$ j: }
int[] ary = {1,2,3};
% Y/ W2 j: Z ^! o& L1 d" l- \: {9 K ary = {3,4,5,6};//编译错误' r8 ~6 a* D: _# _& n
! A0 R$ ~. c) i Java关键字: if, public, class, else, while! S0 Z, d0 ^' I7 Y) h
特殊关键字: goto, const
/ z# g* w3 N. Z) v& A2 y4 l java中 true, false, null 不是关键字, 是字面量!5 D6 M+ }* G/ D, R1 |- i; X: `
% h& H I/ A/ w/ K8 f8 H+ M
4) 数组变量, 数组对象, 数组元素
: E D3 ~) E) z Z) V 如: int[] ary = {1,2,3};
1 r# d6 U2 N" Z( O7 u& r" Z ary 是 数组变量 指代一个具体的数组, 同一个变量指代不同的数组
3 @4 H' ?; c L% h6 z& y {1,2,3} 数组对象& [$ X. L; b" \# h* x" }
1,2,3 是数组元素' z% b$ ~! }% v; P1 Q4 N: d
' P& ]% T- Y; z( r, k M# k
5) 数组元素的访问, 数组对象的大小是固定的,长度是n,下标: 0~n-1 + \- a* t- ^& o5 ?2 c
A 使用[下标] 访问数组元素
' P' U* F! y y6 J. D5 b& y9 t! m; l) Z* C B 越界访问(小于0/大于等于n), 都会发生运行异常 {: X& T7 {7 U( p
C 使用.length 属性可以获取数组对象长度; D9 A- f4 H- n. Y) K
( Y ^; w1 L6 f3 h5 数组的复制与动态扩展算法* r8 i$ I7 h* `1 h3 D
1) 数组对象的复制
8 o4 r1 c/ t3 X) m* f3 o
) |. _/ g1 l2 R, x% u8 k# m 2) 数组的扩展问题/ B" T7 H! f: ]# |$ z6 U
1 Java数组对象的大小是固定的, 数组对象是不能扩展的 F" K/ J- z+ n$ m7 B
2 利用数组复制到方法可以变通的实现数组扩展8 w- }5 _+ a* G4 O* |
3 System.arraycopy() 可以复制数组4 _# L% D9 K, X% @4 ]' m* s
4 Arrays.copyOf() 可以简便的创建数组副本
% j5 N. V) a0 ?" p" r 5 创建数组副本的同时将数组长度增加就变通的实现了9 p; q( \. [4 D9 d& T" o
数组的扩展
5 x8 R& t% Z4 B9 p* c- ~; p4 g3 t8 E
案例1 : 统计一个字符在字符串中的所有位置.7 U1 T$ }# i4 Z* {
字符串: 统计一个字符在字符串中的所有位置
2 ^% A3 y" ~1 W6 _* G: k7 W 字符: '字'
' _0 v- Y5 e6 C. v7 k/ g 返回: {4,7}
) I% A" Y; `2 S, |- T5 S9 v% g. g
7 w' \4 Z6 o5 `' \5 y6) 数组的迭代: 将每个数组元素重复的处理一遍.9 [ `5 Z! M7 f* \* u# M1 k
for(int i=0; i<ary1.length; i++){
9 ~; ?3 `$ ?5 v" F7 B, L) U% b System.out.print(ary1[i] + " ");0 z! B; M) p/ T# V
}
1 ?# v$ _3 Z" i$ B% ?) E; ^6 d0 `* M4 ~) i4 K! l
|
|