TA的每日心情 | 衰 2021-2-2 11:21 |
|---|
签到天数: 36 天 [LV.5]常住居民I
|
1. while: o+ x4 y3 C5 ]6 m# T8 ?
While 循环控制! d t* J. E$ Q
$ q, ^0 O1 B: j( i- e! N
Scanner console = new Scanner(System.in);* V1 A+ [3 h9 l6 Q3 B4 Q
while(布尔表达式){
$ ~# l$ G4 K2 U" ~8 {8 j3 u9 t qty = console.nextInt();0 l! `6 W. I4 |; E w
if(qty>0 && qty<=5){ //五个以内
' i+ z5 l8 |) q0 @ break; //打断, 打断当前循环
6 L1 A& m* f8 l$ X, n7 ] }
) [8 c! o/ `& X9 m$ } }3 W8 K' c( r0 A& P* Y3 Y. `/ G7 n
! l. H8 h- Z0 R( y6 Z4 l2. for 循环(主要用于几次的循环)
0 F9 m7 ] [( X# n' a4 m) b/ l 循环控制5 \, l: a2 E/ M9 b/ B) |! n
for(初始化表达式;布尔表达式; 递增表达式){
7 q/ y& R/ I: a# V //循环体1 n6 Q: l" a# ]# z
}
, m+ X& U* }9 d5 U: e2 g6 i for(;;){8 K1 Y9 M' L0 W( C+ i% Q0 ^
}( ]: L( v; I4 N" @
for(int a=1, b=3;;){
5 m9 z) e7 ]# }# V0 k# q2 R }* a$ ~- j+ c. \
% c U4 {$ O$ ^, p. h. ?
! X# s B: I9 P: ? Example:
2 D8 o& X3 d: P: y for (int i = 0; i < array.length; i++){
. e$ M6 o& [2 J/ v System.out.println(i);0 {3 v7 u& W9 w H/ X% m9 P/ ~
}
3 j1 z+ \; g6 F2 G P' @) F9 f6 c; _' q" I C! {" I
3. do ... while
# Q& _1 Z8 N- N4 J- R do ... while() 循环控制) F* c" A* p' B9 O9 l
do{
+ L2 a* d5 G( B( z% L3 l6 n //循环体% C. W* ]! I2 W7 V$ F1 d) _
}while(布尔表达式);
" G" y9 M+ h, v9 T% X Example:, [" j, o9 L1 S7 ]0 p, K
do{6 m, J& X3 l! R4 B o8 B& S! `
System.out.print("输入押注数量:");
: S7 T) Z. \2 r+ T bet = console.nextInt(); O& ]1 V' L. C
}while(bet <= 0 || bet > balance); //否定条件
5 Z P; t/ j1 B) w2 |
; M8 }' W9 [4 I& M/ s5 A+ A4. java Array
) u% q+ o& G( @3 O3 V* Q- d 1) 数组变量的声明4 X/ G" X+ b+ Z6 ^
int[] ary; 声明了数组变量 ary, 数组变量是代词,
/ h! f g' {- P: ~5 i! ^( R int ary[]; 为了与C语法兼容的写法, 不建议写法,& Z7 o0 r7 D4 Q& E
3 A6 b$ ~) ]# F7 ?8 J
2) 数组对象动态初始化5 h9 p1 Q) i+ I+ X
ary = new int[4]; //数组变量引用了具体数组对象, 就是代词/ }- a' D1 p/ D2 s) _; @1 \
指代了具体事务. K3 J# a3 P4 f& X$ i0 Q
数组元素是自动初始化的, 自动初始化为"零"值.+ T" U5 [/ U) [
"零"值: 0, 0.0, \u0000, false, null
% C1 z9 U2 j4 x ary = new int[]{1,2,3}; 直接给出元素的初始化" T. A" Z1 e, y+ A: l5 o. t
3) 数组对象的静态初始化, 只能用在声明数组变量时候同时初始化
) g% n3 |2 s5 C, }' w * 不能用于赋值语句: a( o0 T; ]6 p$ g6 M
int[] ary = {1,2,3};4 X0 [) i- s9 x* v% }
ary = {3,4,5,6};//编译错误
5 z; k# x4 c- O5 |9 C
. a8 c1 i9 |) J. s Java关键字: if, public, class, else, while
( @& |7 y% S: u/ M* O8 x2 u 特殊关键字: goto, const; R# w3 i i* |/ U8 j4 _& B: K8 f! k
java中 true, false, null 不是关键字, 是字面量!3 X! q7 N: z$ ]4 n- B1 Y* t
- {1 W O0 y% S, S* K6 W 4) 数组变量, 数组对象, 数组元素
! K; e" _5 a2 u+ H. u 如: int[] ary = {1,2,3};
' e. j( H; Q: r( \ ary 是 数组变量 指代一个具体的数组, 同一个变量指代不同的数组
- Z0 A# C" I3 J+ Q {1,2,3} 数组对象3 j% ]# B- O- U+ P. f( {8 \, R
1,2,3 是数组元素
) n9 Y- t3 h b* A4 H9 P
# u ?) R0 }' u4 l) R 5) 数组元素的访问, 数组对象的大小是固定的,长度是n,下标: 0~n-1
6 [* c1 }: B4 }7 L; M; T A 使用[下标] 访问数组元素
2 r& o. Z H3 Q) F* I# f B 越界访问(小于0/大于等于n), 都会发生运行异常7 F5 r+ n3 O( W2 k1 t2 m. }
C 使用.length 属性可以获取数组对象长度
6 }8 C6 ^7 O; N* T, b( o3 G8 }! B- h& W- Z! F* f4 ?
5 数组的复制与动态扩展算法
$ u) r" |7 A. e 1) 数组对象的复制' R% m' R& v9 E1 p: v
) N7 J! W9 L n
2) 数组的扩展问题
6 T5 N+ u9 M9 f0 t 1 Java数组对象的大小是固定的, 数组对象是不能扩展的
# T7 q; }0 u) X5 |# V 2 利用数组复制到方法可以变通的实现数组扩展4 U8 m! O% U- ?. ?5 U. l
3 System.arraycopy() 可以复制数组7 u3 E% }3 k* K: S) f
4 Arrays.copyOf() 可以简便的创建数组副本3 x( S" t; q9 b; V$ U% Z/ x( S
5 创建数组副本的同时将数组长度增加就变通的实现了
& d/ o: b' q) Z9 m( \, z 数组的扩展/ R/ N0 _4 k {+ x9 J" H8 e8 ?: K
; B$ q$ r7 e, K+ e& {; o( Q
案例1 : 统计一个字符在字符串中的所有位置.
6 b* I6 b$ I% u9 }3 k& M' K: p4 ^ 字符串: 统计一个字符在字符串中的所有位置
( r- s- C |1 \ 字符: '字'
4 }# k+ |# ?" ~# E8 ?% ^8 z/ d 返回: {4,7}, }6 }8 X- U0 s+ z- y* w
! X8 D& C! M" T9 Q7 X3 w" v/ r
6) 数组的迭代: 将每个数组元素重复的处理一遍.
3 b3 [9 [- |- @ for(int i=0; i<ary1.length; i++){
- U6 T7 [: @; s4 O* i8 {4 E System.out.print(ary1[i] + " ");
) d$ b$ r% Z% F) K3 W }
. g4 q n: e% a* K
! a) E1 w( n$ _$ x |
|