流程控制基础

流程控制语句

一、if…else条件语句

1.if条件语句主要用于告知程序当某一个条件成立时,须执行满足该条件的相关语句。
2.语法:if(条件判断表达式){
执行代码块
}
例如:

public static void main(String args[ ]){
    int x=1;
    if(x>0)
        System.out.println("x大于0")
    }else{
        System.out.println("x不大于0")
    }
    //if也可以单独使用

二、if…else if语句

1.例如:

public static void main(String args[ ]){
    int x = 88;
    if(x<60){
        System.out.println("成绩不合格");
    }else if(x>=85){
    System.out.println("成绩优秀");
    }else{
     System.out.println("成级良好");
    }

}

2.练习
问题:判断2064年是不是闰年。
解题思路:
闰年判断规则:
(1)能被400整除的是闰年
(2)能被100整除,不能被400整除的不是闰年
(3)能被4整除,不能被100整除的是闰年
(4)其他的不是闰年

public static void main(String args[ ]){
    int year=2064;
    if(year%400==0){
        System.out.println("是闰年");
    }else if(year%100==0&&year%400!=0){
        System.out.println("不是闰年");
    }else if(year%4==0&&year%100!=0){
        System.out.println("是闰年");
    }else{
        System.out.println("不是闰年");
    }
    
}

三、变量的作用域

变量只能在初始化之后使用。
在作用域里定义的变量,只能在该作用域中使用。
使用一对大括号包含的语句范围,称为作用域。
在作用域中,变量名不能重复定义。
例如:

public static void main(String args[ ]){
    int x=1;//我就是初始化,初始化X的值
    if(x>0){
        int x=5;//这个地方就写错了,变量不能重复定义
    }
}

四、switch语句

1.switch语句特点
(1)表达式的值只可以接受int、byte、char、short 、String型,不接受其他类型的值。
(接受String类型的值是在JDK7以后的版本才支持的)
(2)switch case中的值必须与switch表达式中的值类型一样,而且 case后只能接常量
(3)switch语句具有穿透性。如果判断多个条件,但是只有一个break关键字,那么case语句一直执行到有break关键字或switch语句尾行大括号时停止。
2.基本语法
switch (表达式){
case 取值1:
语句块1

case 取值n:
语句块n
default:
语句块n+1
}
例如:

public static void main(String[] args) {
    int x = 3;//初始化变量是3-->这里就涉及到变量的作用域了,如果我写循环里,全局无法调用
    switch (x) {//这里是表达式,里面不能写值
    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("ok");
         break;
    }
}
//最后的执行结果是3

注意:switch中的表达式只能写固定的类型,不可以写判断条件
3.switch的穿透性
直到遇到break或者default关键字之后停下

public static void main(String[] args) {
    int x = 1;//初始化变量是1
    switch (x) {//这里是表达式,里面不能写值
    case 1://表达式的值
         System.out.println("1");
         //没有break继续往下走
    case 2:
         System.out.println("2");
         //没有break继续往下走
    case 3://执行到这里,值相同
         System.out.println("3");
         break;//找到break系统判断跳出循环
    default:
         System.out.println("ok");
         break;
    }
}
//最后的执行结果是123

练习:
问题:ABCD四个选项,正确答案为C,用户输入C控制台提示正确,如果输入ABD提示错误,其他情况提示输入合法值。

public static void main(String args[ ]){
    char score='C';
    switch(score){
        case 'A':
            System.out.println("错误");
            break;
        case 'B':
            System.out.println("错误");
            break;
        case 'C':
            System.out.println("正确");
            break;
        case 'D':
            System.out.println("错误");
            break;
        default:
            System.out.println("输入合法值");
    }
    //输出结果为正确
}

4.continue关键字
用于跳过当前被continue声明的流程控制语句而不执行当前语句中的代码块,直接执行下一语句

五、while循环

1.基本语法
while(条件表达式){
执行代码块;
}
例如:

public static void main(String args[ ]){
    //打印0-6的数字
    int i=0;
    while(i<=6){
        System.out.println(i);
        i++;//让i的值变化,要是不写这个,就是个死循环了。因为i的值永远都是0。
    }
}
//输出结果0123456

练习:
问题:计算1-100各个数字的总和

public static void main(String args[ ]){
    int i=1;
    int sum=0;
    while(i<=100){
        sum+=i;//这个地方的意思就是sum=sum+i  第一次循环sum=0+1 第二次循环sum=1+2以此类推
        i++;
    }
    System.out.println("总和为:"+sum);
}

六、do…while循环

1.基本语法
do{
执行代码块;
}while(条件表达式)
例如:

public static void main(String args[ ]){
    int i=0;
    do{
        System.out.println(i);
        i++;
    }while(i>0)
     //最后执行while
}

从这里大家可以看出do…while可以把本来不满足条件表达式的,变成满足条件表达式的后运行。如果改成while循环 i=0不满足条件表达式i>0这时就直接跳出循环了

七、for循环

1.基本语法
for((数据类型)条件表达式1;条件表达式2;条件表达式3){
执行代码块;
}
例如:

public static void main(String args[ ]){
    for(int i=0;i<10;i++){
         System.out.println(i);
    }
}

注:1.for循环可以多层嵌套,之后会在数组中讲到“冒泡排序”就是利用了for循环的嵌套
2.for循环也可以嵌套if语句使用
3.for循环最好不要多层嵌套,这样会降低性能
练习:用for循环实现99乘法表

public static void main(String args[ ]){
		int s=1;
		for(int i=1;i<=9;i++) {
			for(int j=1;j<=i;j++) {
				s=i*j;
				System.out.print(i+"*"+j+"="+s);
			}
			System.out.println();
		}
	}
	    
发布了4 篇原创文章 · 获赞 0 · 访问量 122

猜你喜欢

转载自blog.csdn.net/aa245455945/article/details/104080269