TA的每日心情 | 衰 2021-2-2 11:21 |
---|
签到天数: 36 天 [LV.5]常住居民I
|
1. while
: J6 x. t2 q* O: g; S. U While 循环控制0 Q: i/ G( }; g7 s/ F& {
. X9 \; g6 T, L6 _5 A/ @( P: q* s
Scanner console = new Scanner(System.in);
5 ~" S+ h- X q while(布尔表达式){- c+ }! v5 l7 g5 \
qty = console.nextInt();, `9 {7 L& f; I$ `' g1 X
if(qty>0 && qty<=5){ //五个以内
3 I+ T0 W) }* f% v6 n% t break; //打断, 打断当前循环
7 p$ K2 {- J" s, E; D }& N9 @5 A0 `* r' V1 Y
}
1 e# j1 q+ r8 J' S: I" z
: m% U! h+ E" x' f4 {, m2. for 循环(主要用于几次的循环)* \5 G/ Y& \% F
循环控制
+ t8 f( P' S2 x- u, s for(初始化表达式;布尔表达式; 递增表达式){
( ^6 o$ Y$ w9 T* \( \ //循环体6 f/ g' R+ j z+ q; r; m: p! a+ x
}
* ^+ K& v* N0 {+ Z for(;;){. k% _% p' K$ ]( j* Y4 r
}6 A3 `6 Y* ?. l
for(int a=1, b=3;;){
& |# R7 b/ x, ^7 j/ o& K+ p }- b& |) U1 \9 t9 G
: j* @5 @7 Y2 t, A. z3 l$ D
) `8 p% c) h' f# z- r Example:
9 ~) q ]1 `: z8 e" S, Y for (int i = 0; i < array.length; i++){, D8 O$ ~! {6 K/ h! t" k2 }
System.out.println(i);
% I# g4 |$ r) h+ C }
1 f$ q5 `# q) c* |$ x( ]! R
8 S2 n- Y: A( e5 `7 |3. do ... while
5 b! ^4 ^' N `# t do ... while() 循环控制1 P% P7 H( @ t. o* G! c
do{
9 `- ~+ V- W3 }! q //循环体
$ P8 u; G8 a5 Z! \" _* K. M+ Y8 @: A( ^ }while(布尔表达式);1 [# y7 W; T* M0 \' O: y' S
Example:/ X" x) q& Y" p4 @ v1 q+ S
do{
; k1 N& r- { E* w* D/ t) B System.out.print("输入押注数量:");
$ I( l0 n$ T* G/ {- V bet = console.nextInt();
3 c, g. g/ g+ G. P- } }while(bet <= 0 || bet > balance); //否定条件
" m4 p$ s ]6 a7 w4 }& M4 v; U W
4. java Array
, f2 Z, Y+ p$ e v8 i+ Y 1) 数组变量的声明
o: C. b. B5 L' T, H7 N int[] ary; 声明了数组变量 ary, 数组变量是代词,# V r! u [; L3 A5 n6 r
int ary[]; 为了与C语法兼容的写法, 不建议写法,
- P% Y. ]2 T' g% x1 j* C3 l t+ ?
: b9 ?: t/ Y: L. Q 2) 数组对象动态初始化
) B9 M% }- N& X' J ary = new int[4]; //数组变量引用了具体数组对象, 就是代词
4 H9 ~6 @2 `9 x& P1 I3 Z% X 指代了具体事务.1 e& S" J) j2 j! M+ m7 Q& J
数组元素是自动初始化的, 自动初始化为"零"值.
' S' L# a* I5 p7 i O$ j) T "零"值: 0, 0.0, \u0000, false, null
0 j( h A5 Y9 B% ]* p, B8 c+ f ary = new int[]{1,2,3}; 直接给出元素的初始化
1 q; M2 f2 G7 c0 j 3) 数组对象的静态初始化, 只能用在声明数组变量时候同时初始化% V) P+ A @2 m- k% I+ i
* 不能用于赋值语句: G9 E* d' V; C# v
int[] ary = {1,2,3};
2 }. V2 H: x- Z; j( j; R ary = {3,4,5,6};//编译错误
4 ]6 ~) j4 a1 }2 o& c
3 `0 T. Q7 ^9 d* k Java关键字: if, public, class, else, while
" v4 ]) T2 K# S2 E5 {. |3 ^2 f4 Z 特殊关键字: goto, const+ {& W3 k" b! \ g
java中 true, false, null 不是关键字, 是字面量!! c5 S I' L4 s8 _/ ^- w8 n
3 B5 `9 N/ d0 u
4) 数组变量, 数组对象, 数组元素 ( [7 v- t- f1 v; v8 S% o' ^
如: int[] ary = {1,2,3};6 \9 w Y7 R: M% [5 i
ary 是 数组变量 指代一个具体的数组, 同一个变量指代不同的数组
' h/ ~& M0 r7 Z: E+ [9 ]- l {1,2,3} 数组对象
% {0 @" P6 P" D/ {8 Q F 1,2,3 是数组元素4 E. K/ i: b/ r8 W5 E
# Z/ z% A% v* F, c/ E7 I' C7 ]7 h: c
5) 数组元素的访问, 数组对象的大小是固定的,长度是n,下标: 0~n-1 / X. N" R) T1 c; |( r3 |! u7 f
A 使用[下标] 访问数组元素
! S: b9 q+ M( d7 q% q* o9 ]2 V6 f B 越界访问(小于0/大于等于n), 都会发生运行异常0 |/ o4 P, U/ S) m0 G
C 使用.length 属性可以获取数组对象长度" G! Y9 a- k! M# X5 {
9 I+ k. G0 m! \0 w5 数组的复制与动态扩展算法) Y8 d$ T% f( s. e& N
1) 数组对象的复制
D, c9 x7 y% I' `& j1 ]& d
9 d8 b6 r& U, {/ p2 V7 E" G# g8 O 2) 数组的扩展问题
$ p. E# c \- H% ~ 1 Java数组对象的大小是固定的, 数组对象是不能扩展的
. {6 ]+ D! p7 I% G5 X: C6 o 2 利用数组复制到方法可以变通的实现数组扩展3 g/ r/ K8 L4 y
3 System.arraycopy() 可以复制数组5 v6 z' n& Z3 W$ }( o1 b9 {
4 Arrays.copyOf() 可以简便的创建数组副本
( d& @: j c" L% f 5 创建数组副本的同时将数组长度增加就变通的实现了$ X7 i1 u, u# w1 D0 U
数组的扩展
" i$ j4 U9 Q6 @( z9 @+ K
1 l2 B; r% @$ M7 |$ | 案例1 : 统计一个字符在字符串中的所有位置.
" a4 c! K8 i, _. Z5 k) p; M 字符串: 统计一个字符在字符串中的所有位置
) f) J g2 {4 i& U; | 字符: '字'
* J C S* |6 i 返回: {4,7}
! h% z$ b9 S$ G( }( h) V8 |: C( x! Z0 {3 z3 H+ Z
6) 数组的迭代: 将每个数组元素重复的处理一遍.
3 g# {! d8 ?) P6 F for(int i=0; i<ary1.length; i++){6 M! J1 D: K$ g& }- W1 x: ?
System.out.print(ary1[i] + " ");4 v! l9 s: j$ k8 ^7 U* A
}
! F/ Q0 w1 \) M% y' s
' I3 W0 h1 H! f, D |
|