Java基础语法(二)语法结构
Java 中的语法结构有四种
1 /* 2 使用if语句判断你要进男厕还是女厕 3 */ 4 class TestIf 5 { 6 public static void main(String[]args) 7 { 8 int x=5; 9 if(x==1) 10 System.out.println("您是先生,请进男厕!"); 11 else if(x==2) 12 System.out.println("您是女士,请进女厕!"); 13 else 14 System.out.println("对不起,无法识别您的性别!"); 15 System.out.println("\t\t\t\t\t————青衫出品!————"); 16 } 17 }
1 /* 2 需求:客户要求输入月份后能显示是哪个季节。 3 3 4 5 春季;6 7 8 夏季;9 10 11 秋季;12 1 2冬季; 4 */ 5 class JiJie 6 { 7 public static void main(String[] args) 8 { 9 //使用if条件语句设计 10 int x=11; 11 if(x<1||x>12) 12 System.out.println("没有这个月份,请重新输入!"); 13 else if(x>=3&&x<=5) 14 System.out.println(x+"月份是春季。百花盛开,多出去走走,感受大自然的魅力!"); 15 else if(x>=6&&x<=8) 16 System.out.println(x+"月份是夏季。烈日炎炎,请注意避暑!"); 17 else if(x>=9&&x<=11) 18 System.out.println(x+"月份是秋季。秋高气爽,是旅游的好时节!"); 19 else 20 System.out.println(x+"月份是冬季。请注意保暖!"); 21 22 System.out.println("\t\t\t\t\t\t————青衫出品!————"); 23 24 } 25 }
2.选择结构
(1)switch语句结构:
switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
……
case 取值n:
执行语句;
break;
default:
执行语句;
break;
}
(2)switch语句特点:
a: switch语句中的类型只有四种:byte short int char
b:case与default 编写代码没有顺序,default可以放在case前面。但是执行顺序仍然是先找第一个case,最后执行default语句。
c:结束switch语句有两种情况:一种是遇到break;语句。另一种是switch语句执行完毕(也就是遇到switch中的大括号“}”)
d:case语句有穿透性。也就是如果匹配的case语句没有break;那么执行完毕后会继续向下执行可以执行的语句,直到遇到break;或者大括号“}”。
例:
1 /* 2 需求:客户输入后能显示对应的星期 3 */ 4 class Switch 5 { 6 public static void main(String[] args) 7 { 8 int x=1; 9 switch(x) 10 { 11 case 1: 12 System.out.println(x+"星期一"); 13 case 2: 14 System.out.println(x+"星期二"); 15 case 3: 16 System.out.println(x+"星期三"); 17 break; 18 case 4: 19 System.out.println(x+"星期四"); 20 break; 21 case 5: 22 System.out.println(x+"星期五"); 23 break; 24 case 6: 25 System.out.println(x+"星期六"); 26 break; 27 case 7: 28 System.out.println(x+"星期日"); 29 break; 30 default: 31 System.out.println("查询不到您输入的数字,请重新输入"); 32 } 33 34 35 } 36 }
如上面代码,执行后还会继续向下执行,打印出来的结果就会变成下图,

直到遇到break;才会结束语句。这就是case的穿透性。
让我们做个练习,用switch结构来设计上面的输入月份显示季节。
1 /* 2 需求:客户要求输入月份后能显示是哪个季节。 3 3 4 5 春季;6 7 8 夏季;9 10 11 秋季;12 1 2冬季; 4 */ 5 class JiJie 6 { 7 public static void main(String[] args) 8 { 9 //使用switch语句设计 10 int a=5; 11 switch(a) 12 { 13 case 3: 14 case 4: 15 case 5: 16 System.out.println(a+"月份是春季。百花盛开,多出去走走,感受大自然的魅力!"); 17 break; 18 case 6: 19 case 7: 20 case 8: 21 System.out.println(a+"月份是夏季。烈日炎炎,请注意避暑!"); 22 break; 23 case 9: 24 case 10: 25 case 11: 26 System.out.println(a+"月份是秋季。秋高气爽,是旅游的好时节!"); 27 break; 28 case 12: 29 case 1: 30 case 2: 31 System.out.println(a+"月份是冬季。请注意保暖!"); 32 break; 33 default: 34 System.out.println("没有这个月份,请重新输入!"); 35 36 } 37 38 System.out.println("\t\t\t\t\t\t————青衫出品!————"); 39 40 } 41 }
由上面的程序可以看到,使用if语句和switch都能完成客户的需求。那么该怎么选择呢?
如果判断的具体数值不多,而且符合byte short int char这四种类型。虽然两个语句都可以使用,建议使用switch语句,因为效率稍高。
其他情况:对区间判断,对结果为boolean类型判断,使用if,if的使用范围更广。
3. 循环结构
while循环
while语句格式: while(条件表达式)
{
执行语句;
}
do while循环
do while语句格式:
do
{
执行语句;
}while(条件表达式);
while和do while的区别:
while:先判断条件,只有条件满足才执行循环体。
do while:先执行循环体,再判断条件,条件满足,再继续执行循环体。
简单一句话:do while:无论条件是否满足,循环体至少执行一次。
注意:while中,while条件表达式后没有分号。do while中,while条件表达式后有分号。
for循环
for语句格式
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
for语句的特点:(1)初始化表达式只执行一次
(2)条件不满足,循环就结束
(3)表达式个数不唯一。如果表达式多的话,用逗号隔开 例:for(int x=1;x<4;System.out.println("m"),x++){ }
for与while是可以互换的,它们的区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。
注:(1)什么时候使用循环结构呢?
当要对某一条语句执行很多次的时候,就使用循环结构
(2)最简单无限循环格式:while(true){}, for(;;){},对于for来讲,不写条件表达式默认就是ture。无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。
(3)一定要注意哪些语句需要参与循环,哪些不需要。
(4)累加思想:通过变量来记录住循环操作后的结果。(要在循环中才能使用这个思想)
(5)计数器思想:通过变量来记录住数据状态的变化。(要在循环中才能使用这个思想)
练习for语句
1 /* 2 需求:打印出1+2+……+10的和 3 思考:1.通过for循环来把1到10遍历一次。 4 2.需要定义一个变量来记录连个数相加的和。 5 */ 6 class TestSum 7 { 8 public static void main(String[] args) 9 { 10 int sum=0; 11 for(int i=1;i<=10;i++) 12 { 13 sum+=i; 14 } 15 System.out.println("1+2+……+10="+sum); 16 } 17 }
注:在上面这个程序中,我们运用到的思想就是累加思想。
1 /* 2 需求:打印出一百以内7的倍数的个数。 3 思考:1.要先对一百以内的正整数进行遍历 4 2.通过if语句对条件进行判断,把能整除7的数找到。 5 3.定义一个变量来记录7的倍数的个数,每找到一个7的倍数。变量就自增一。 6 */ 7 8 class ForTest 9 { 10 public static void main(String[] args) 11 { 12 int count=0; 13 for(int x=1;x<100;x++) 14 { 15 if(x%7==0) 16 count++; 17 } 18 System.out.println("一百以内7的倍数有"+count+"个"); 19 } 20 }
在上面这个程序中,我们用到的就是计数器思想。
嵌套循环
顾名思义,嵌套循环就是循环套循环。嵌套循环的格式:
for(;;;)
{
for(;;;)
{
执行语句;
}
}
练习:
1 /* 2 打印出 3 * 4 * * 5 * * * 6 * * * * 7 * * * * * 8 9 思路:要想打印出这个图形。需要找出规律。这个图形的规律是前面空格的个数。 10 为了便于观察,我们把空格用+表示这样就可以看出来规律了, 11 第一行是4个空格,第二行是3个空格,第三行是2个空格,第四行是1个空格,第五行就没有了。空格数随着行数的增加减少。 12 所以我们先把空格的循环写出来,然后再加上“* ”的循环。 13 ++++* 14 +++* * 15 ++* * * 16 +* * * * 17 * * * * * 18 19 */ 20 class ForFor 21 { 22 public static void main(String[] args) 23 { 24 for(int x=0;x<5;x++) 25 { //空格的循环 26 for (int k=x;k<5 ;k++ ) 27 { 28 System.out.print(" "); 29 } 30 //* 的循环 31 for(int y=0;y<=x;y++) 32 { 33 System.out.print("* "); 34 } 35 System.out.println();//进行换行 36 } 37 } 38 }
4. 其他流程控制语句——break,continue
break(跳出)语句:应用范围:选择结构和循环结构。
continue(继续)语句:应用于循环结构。
注:
(1)这两个语句离开应用范围,存在是没有意义的。
(2)这个两个语句单独存在时,下面都不可以有语句,因为执行不到。
(3)continue语句是结束本次循环继续下次循环。
(4)标号的出现,可以让这两个语句作用于指定的范围。只能用于循环结构。
浙公网安备 33010602011771号