1.5、基本程序控制(重点)
在各个编程语言中,不管如何变化,始终会有判断、循环的操作。
1.5.1、判断语句
判断就是进行程序的分支,之前的程序属于顺序的操作结构,是从头到尾进行依次的操作,那么,判断语句主要分为以下几种:
1、 if语句
2、 if…else语句
3、 if…else if…else if…else语句
4、 switch语句
以上的所有的判断语句中,除了switch之外,都要使用boolean类型进行判断的操作。
**范例:**if语句使用
public class TestDemo32 {
public static void main(String args[]){
int x = 30 ;
if(x==30){ // 条件满足
System.out.println("条件满足!") ;
}
if(true){
System.out.println("条件满足!") ;
}
}
}
那么,以上的操作中,只是判断了其中的一个条件,如果现在要想使用如果…否则…的话,则就必须使用if…else语句完成操作。
**范例:**if…else语句
public class TestDemo33 {
public static void main(String args[]){
int x = 31 ;
if(x==30){ // 条件满足
System.out.println("年龄是30岁!") ;
}else{
System.out.println("年龄不是30岁!") ;
}
}
}
以上的操作,属于二选一的操作。但是,如果想要进一步进行划分,判断是大于30还是小于30的话,则就要使用if…else if…else if…else语句。
public class TestDemo34 {
public static void main(String args[]){
int x = 31 ;
if(x==30){ // 条件满足
System.out.println("年龄是30岁!") ;
}else if(x<30){
System.out.println("年龄小于30岁!") ;
}else{
System.out.println("年龄大于30岁!") ;
}
}
}
如果,现在想要进行多个条件的判断,也可以加入多个else…if。
**范例:**给定一个程序,判断其等级
小于60:差
60~75:中
75~95:良
95~100:忧
那么这个时候肯定需要多个条件一起进行判断的操作。
public class TestDemo35 {
public static void main(String args[]){
int x = 71 ;
if(x<60){
System.out.println("成绩是差!") ;
}else if(x>=60&&x<75){
System.out.println("成绩是中!") ;
}else if(x>=75&&x<95){
System.out.println("成绩是良!") ;
}else{
System.out.println("成绩是优!") ;
}
}
}
以上的if…else if中可以可以直接执行逻辑表达式的判断,当然在java中提供了一个专门的switch的语句,使用此语句可以判断是否满足于某个数值。
public class TestDemo36 {
public static void main(String args[]){
int ch = 6 ;
switch(ch){
case 1:{
System.out.println("结果是1") ;
break ;
}
case 2:{
System.out.println("结果是2") ;
break ;
}
case 3:{
System.out.println("结果是3") ;
break ;
}
default:{
System.out.println("没有此结果") ;
}
}
}
}
Switch中只能接受数字或字符的操作,并不能接受任何的表达式的操作。但是在JDK1.5之后,switch语句之中可以接收枚举的操作。
1.5.2、循环语句
对于很多初次学习到编程语言的用户来讲,循环是一个比较难的门槛。循环的操作中必须合理的控制循环的开始条件、结束条件,以及中间的循环体。
在java中支持以下几种循环:while、do…while、for
下面通关进行1~100的累加程序,来观察以上的三种循环。
**范例:**使用while循环操作
public class TestDemo37 {
public static void main(String args[]){
int x = 1 ;
int sum = 0 ; // 接收最终的计算结果
while(x<=100){ // 如果最后x的内容变成了大于100,则此循环退出
sum += x ; // 进行加法操作
x++ ; // 修改循环条件
}
System.out.println(sum) ;
}
}
但是,在使用while语句的时候,可以发现,是先进行判断的,之后再进行循环体的操作。
**范例:**使用do…while循环操作
public class TestDemo38 {
public static void main(String args[]){
int x = 1 ;
int sum = 0 ; // 接收最终的计算结果
do{ // 如果最后x的内容变成了大于100,则此循环退出
sum += x ; // 进行加法操作
x++ ; // 修改循环条件
}while(x<=100) ;
System.out.println(sum) ;
}
}
次语句是先执行一次之后,再进行判断的,也就是说不管条件如何,都至少执行一次。
以上的while和do…while语句,都是在外面定义了一个循环的变量,之后在里面修改了变量,其语法的行数非常的多,那么可以使用fot循环进行简化操作。
**范例:**使用for循环完成
public class TestDemo39 {
public static void main(String args[]){
int sum = 0 ; // 接收最终的计算结果
for(int x=0;x<=100;x++){
sum += x ;
}
System.out.println(sum) ;
}
}
1.5.3、控制循环
再进行循环操作的时候,可以使用break和continue进行循环的控制。
范例:使用break进行控制
break表示退出整个的循环操作
public class TestDemo40 {
public static void main(String args[]){
for(int x=0;x<10;x++){
if(x==3){
break ; // 退出整个循环
}
System.out.println("x = " + x) ;
}
}
}
当x循环到3的时候,程序将不再进行,退出整个循环。
范例:使用continue进行控制
·continue表示退出一次的循环操作
public class TestDemo41 {
public static void main(String args[]){
for(int x=0;x<10;x++){
if(x==3){
continue ; // 退出整个循环
}
System.out.println("x = " + x) ;
}
}
}
1.5.4、实例讲解
在一般的语言中都会经常发现,要求打印一个9*9乘法表。这个时候就可以使用循环的嵌套完成。
public class TestDemo42 {
public static void main(String args[]){
for(int x=1;x<10;x++){
for(int y=1;y<=x;y++){
System.out.print(x + "*" + y + "=" + x*y +"\t") ;
}
System.out.println() ; // 换行
}
}
}
判断在3000之内哪个数能否被3,7,5同时整除。
public class TestDemo43 {
public static void main(String args[]){
for(int x=1;x<=3000;x++){
if(x%3==0&&x%5==0&&x%7==0){
System.out.println(x + "\t") ;
}
}
}
}
在进行循环的操作中,有一道最经典的题目:打印正三角形。
*
* *
* * *
* * * *
* * * * *
public class TestDemo44 {
public static void main(String args[]){
int line = 5 ; // 打印5行
for(int x=0;x<line;x++){
for(int y=0;y<line-x;y++){
System.out.print(" ") ;
}
for(int y=0;y<=x;y++){
System.out.print("* ") ;
}
System.out.println() ;
}
}
}
给定三个数字,求出这三个数字中的最大值,并将最大值输出。
最简单的方法是使用if语句进行判断。
public class TestDemo45 {
public static void main(String args[]){
int x = 10 ;
int y = 20 ;
int z = 50 ;
int max = x ; // 定义一个变量,取得最大值
if(max<y){
max = y ; // 如果y比x大,则max的值是y的内容
}
if(max<z){
max = z ; // 如果z比max大,则max的值是z
}
System.out.println(max) ;
}
}
可以使用三目运算符完成
public class TestDemo46 {
public static void main(String args[]){
int x = 10 ;
int y = 20 ;
int z = 50 ;
int max = x<y?y:x ;
max = max<z?z:max ;
System.out.println(max) ;
}
}
转载请注明来源