a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 306|回复: 1

[专业语言] JAVA语言基础之语句及控制流3

[复制链接]
发表于 2012-8-4 12:44:44 | 显示全部楼层 |阅读模式
l         多分支语句switch 开关语句:控制传递给以表达式的值为标号的语句。
$ o, f# E8 J& ?4 u6 b5 ~( J格式: ) m3 O: B, S) M
switch (int_expression)  , l6 h( H6 _" ?  ]
{
* [+ w$ B5 n* k  a! p               case n1: 6 c% D5 ?8 W3 w& H. o
                      Statements;  break;
1 W' O/ _; d" L1 h               case nk; 5 c5 D7 d; Q# `6 O7 t9 I) N
                       Statements;  break; 4 j: v7 `; ~) ~( N4 x) z3 Q  Q
               default:
. \# }+ j% v; b1 r; Y  f- N                      Statements; break; ' G' H* w2 E0 S
             } $ |- e1 m4 G& N# V( l) E
这里int_expression必须返回一个int(或byte,char,short),n1到nk为int或可以返回int的一个表达式。
$ u7 d& ?( U5 V" m9 [" D如果没有找到匹配的值,则执行default: Statements,不过default可有可无
: w- Q" C6 G1 |3 Z每个case之后,可以包含一个或多个语句而不用用{}包起来。
( D  l3 F7 R; o一般在每个case后的语句末尾都要加一个break语句,否则若该case符合,则它下面一直到switch结束或遇到break,所有的语句都会执行。
5 D( s/ A) i0 y程序例:
回复

使用道具 举报

 楼主| 发表于 2012-8-4 12:44:45 | 显示全部楼层

JAVA语言基础之语句及控制流3

class DayCounter  4 A( g& m! n- V9 z" M$ `. W# F
{   `- B+ b' |; w+ s& w  [) y
public static void main(String[] arguments)  0 q# j6 f; g6 O3 @+ J. Y( f) V
{ - k4 D2 _6 t1 z, w. O
        int yearIn = 2001;             //可以改变 年 月的数据
9 m; K! ^8 V8 r! {. {: ]$ o        int monthIn = 3;
: N( j3 Z+ F& J: I* t8 A        if (arguments.length > 0)          //也可以从命令行上来输入 6 N$ w$ I' ^6 J% j% b
            monthIn = Integer.parseInt(arguments[0]); , e; s. ^' x1 Y4 Q  E( I: I6 p8 _
        if (arguments.length > 1)
" O* u/ `2 T1 e1 r- M/ ^            yearIn = Integer.parseInt(arguments[1]); 0 F% O  Q1 v+ B2 o& ]% A" u. y3 ^: a
System.out.println(monthIn + "/" + yearIn + " has " + countDays(monthIn, yearIn) + " days.");   z7 y2 S6 D0 e
    } & _0 \8 U( F3 m( x" z4 n6 I- O- v
   public static int countDays(int month, int year)  
1 c# s  L# o" m+ n# A2 V; D; Z" J{   b6 T; Z. \, N
        int count = -1;
, g2 U. Z7 M* E4 N9 U5 b' W        switch (month)  
& O% x& u8 S+ X{
6 t4 J1 _6 g) h2 y* t            case 1:        //识别大月 * O! N1 w7 z6 n  o9 L
            case 3: $ @) Z/ P  e+ `! D9 K$ W
            case 5: 4 ~5 l0 O. ~) i4 u6 q
            case 7:
; i$ O, C# [; f6 o            case 8:
* X1 \- V7 S! R0 }! [' Y* C            case 10: 2 A5 L+ F. S, }2 K% e3 [2 U9 M- a
            case 12:
$ ]% @' g0 f% S, f+ |! P                count = 31; - F9 y% v0 y( @7 i% F, `
                break; 5 b6 O5 a! R+ a4 N2 f
            case 4:        //识别小月 0 f* L0 g: z0 w( m( O  L- t: E
            case 6:
- F: v, i/ ]% k; @( ^5 P2 \            case 9:
7 A/ K/ {" _( a2 ~6 h- E            case 11:
: R  ~- r' Z- a$ A8 }3 I0 l9 f6 m                count = 30; 1 V. d7 R) u  E
                break; ; B* W# F# k0 r6 z: z% @9 R0 e
            case 2:        //识别平月
! `3 j6 k" q! ?; ^2 j9 K6 g                if (year % 4 == 0) & ~) [. u* v) k( ]6 _, P! b0 B$ s
                    count = 29;
' R8 K3 s# H7 w/ q! x                else * }' n# r5 ?3 p
                    count = 28; 4 ~3 S( v* M3 v: p$ K
                if ((year % 100 == 0) & (year % 400 != 0))
# H, X" M6 k  A) C5 x                    count = 28;
5 T4 a6 q, h. u7 a2 q( \; D        } $ ^9 P/ Q3 b0 r4 d
        return count; / c# W# h+ {7 ?
    }
7 h, [+ y: G& w( r0 \; s}
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-4-28 01:34 , Processed in 0.345179 second(s), 23 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表