TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
1. while4 l+ J& K" k" Q: J% ^
While 循环控制( [& r9 v4 T! E# v4 A0 }2 f x5 C
6 u7 J' n/ s' S$ \0 _# v% j. U4 l Scanner console = new Scanner(System.in);
! z6 Z+ n& ]9 c) I7 h/ T; p while(布尔表达式){) W# C# i4 m9 t" ~
qty = console.nextInt();
/ l9 g0 n+ [% S if(qty>0 && qty<=5){ //五个以内5 L) L- A+ f+ A- [
break; //打断, 打断当前循环. j! e% k8 `( W* H. m: c
}
7 ]+ z' @/ p8 p+ ~9 e }
: \* _8 j. R7 ~ }: V+ s1 _
0 u9 s8 O! I/ g7 m# T: c$ a# X" f2 N2. for 循环(主要用于几次的循环)
0 o' |( C) a3 }" r 循环控制& C4 c: p, O5 W' q! ]9 ]5 U- E I
for(初始化表达式;布尔表达式; 递增表达式){
2 H- W3 W& A3 e& ~0 Z: W+ L. {9 a //循环体( n3 q/ W% D& I- c- c3 h0 Q8 F
}0 r+ d) L$ c# l" } e9 |8 w
for(;;){
( O) v4 l( o, C) s( W }
4 F/ z. J; G7 ~. R/ y for(int a=1, b=3;;){
7 a# F+ `! m* _# D% D2 w }
' U2 L Y1 z* I+ n3 W( C) c, A( s+ ~
% b, B* [4 ?! d o/ F) o7 b
Example:8 [% l: R5 L; [% B; W
for (int i = 0; i < array.length; i++){
/ l9 k7 n; C0 B+ [0 { System.out.println(i);! ]4 A+ Y* [1 G- [
}
/ J% h& h, O4 A) w: l8 m) ]9 i, f- R8 t+ S% X S1 x1 S
3. do ... while2 u# Q! ?" w. q1 T5 [
do ... while() 循环控制. ~: c: T) h: J$ d- t
do{
' M2 q9 U: Z6 G9 R! e1 M) e4 L5 \6 \ //循环体% s; F$ ~' ]8 u! S0 p) V
}while(布尔表达式);' A# z, C& S# V6 G
Example:
; H/ B8 O( B0 r* H- ` do{
. a; A; T; a& u1 `. ~ System.out.print("输入押注数量:");
) Q! b) R; c( {! R bet = console.nextInt();
4 Z5 s7 e) P; r( n }while(bet <= 0 || bet > balance); //否定条件; T& q$ P$ K* F$ I; @1 Z# T
0 w9 k, O( Y/ H# c- l- m/ ^; U
4. java Array! P* Y( G/ a# t: S% f, d7 }$ p
1) 数组变量的声明, u% T# _- n1 O) f# ~3 O5 K, P; j
int[] ary; 声明了数组变量 ary, 数组变量是代词,
; Y+ V9 U/ V+ z6 ~ int ary[]; 为了与C语法兼容的写法, 不建议写法,
! H/ L) b+ G; f
3 e! s5 m; R* {% ?4 B4 j) z6 N 2) 数组对象动态初始化
" i* x: H. G, k2 m ary = new int[4]; //数组变量引用了具体数组对象, 就是代词2 C5 H5 C3 L+ k. ^ _
指代了具体事务., N3 {* h& A: [
数组元素是自动初始化的, 自动初始化为"零"值.
! Z$ k/ P2 A# L1 |. D3 W8 M "零"值: 0, 0.0, \u0000, false, null+ k& T5 `& Y# b* c0 H
ary = new int[]{1,2,3}; 直接给出元素的初始化
. I6 t- L8 C- [. \" t2 k 3) 数组对象的静态初始化, 只能用在声明数组变量时候同时初始化9 D2 v8 J8 @1 u3 z+ Z1 O! |( r
* 不能用于赋值语句
; o- Z2 W4 b6 @9 H int[] ary = {1,2,3};# c: f6 x" R3 V, T$ s& M
ary = {3,4,5,6};//编译错误
: w4 A, H& ]1 j. d& n1 i
% D% c; j; o, {& P3 `/ r+ Z$ Y Java关键字: if, public, class, else, while2 ?% S; X$ ~7 N3 e1 o% f h _
特殊关键字: goto, const0 `+ Q3 W( q# J7 U5 s. j) G
java中 true, false, null 不是关键字, 是字面量!
) [2 S3 N7 C$ b( r1 W6 C& k0 a* Z: u) r' q/ A" j# F
4) 数组变量, 数组对象, 数组元素 . I. Z k2 y4 Z8 \+ p( ]8 Y8 ~
如: int[] ary = {1,2,3};
! [0 L" d7 x9 d1 {5 e ary 是 数组变量 指代一个具体的数组, 同一个变量指代不同的数组4 ?: o# N7 y" {7 x" h9 n6 Z
{1,2,3} 数组对象- R4 W3 v% G* M, v' t
1,2,3 是数组元素1 i2 O9 l# {4 R, L
- h; H$ x/ \5 G$ r
5) 数组元素的访问, 数组对象的大小是固定的,长度是n,下标: 0~n-1
* G- n1 Z1 b) A" f1 a A 使用[下标] 访问数组元素
! m. p) Y7 w+ J B 越界访问(小于0/大于等于n), 都会发生运行异常
" h* f1 M% x" C C 使用.length 属性可以获取数组对象长度
R8 T; ^1 W" F' U# c! z
6 L3 M$ ] F7 _* E0 d5 数组的复制与动态扩展算法0 r# m+ h; S. Q- Y- S, Q% O4 O! s
1) 数组对象的复制' G2 D) D* \: s7 x; Q k' o# R
: v& r9 R) L. S6 r% ]3 U
2) 数组的扩展问题
; \: m) T5 S2 c 1 Java数组对象的大小是固定的, 数组对象是不能扩展的% a z- q3 Z4 Y2 ~" Q
2 利用数组复制到方法可以变通的实现数组扩展
2 O a) [2 [% ^: S5 W- g 3 System.arraycopy() 可以复制数组0 s' S0 ?: B4 A0 {
4 Arrays.copyOf() 可以简便的创建数组副本+ r. T8 J% y# O7 \
5 创建数组副本的同时将数组长度增加就变通的实现了8 P# X7 W* H9 J# v4 B7 R
数组的扩展/ i O* P) L8 L/ ~) b% b
1 ~: b- e" P8 Q
案例1 : 统计一个字符在字符串中的所有位置.
# C3 D! o5 w% i! [ 字符串: 统计一个字符在字符串中的所有位置+ R! n" R0 b( T& M2 F, l
字符: '字'
5 l; q: |- Y" i 返回: {4,7}3 k8 y/ H6 A1 s8 Y
) W3 ^5 y! D5 p7 X6) 数组的迭代: 将每个数组元素重复的处理一遍.8 P- @. ^ O5 q$ `, ~
for(int i=0; i<ary1.length; i++){) h+ |" U4 O. B- J$ g# R
System.out.print(ary1[i] + " ");
) t3 G' A/ |8 }5 N }
) Y2 W$ x9 q @/ @/ H) s% O
/ x* }: Q7 X0 c' D0 f% c* c |
|