菜鸟学JAVA之——流程控制语句(if、switch、for、while语句)

JAVA流程控制语句


一、选择语句

1. if语句

格式

if(布尔表达式){
	表达式为真执行的代码块;
}

示例

public class Test{
	public static void main(String[] args){
	boolean foo = true;
	if(foo){
    	System.out.print("A");
    	System.out.print("B");
		}
	}
}

if语句关心的后面的内容是一个代码块,有截断符,这条语句就结束了,所以如果没有花括号那么只执行if语句后的一条语句。

public class Test1{
	public static void main(String[] args){
	boolean foo = false;
	if(foo) 
    	System.out.print("A");
    	System.out.print("B");
	}
}

输出结果为
在这里插入图片描述

2.if - else 语句

格式

if(布尔表达式) {
   //表达式的值为真,执行这里的语句
} else {
   //表达式的值为假,执行这里的语句
}
3.if - else if -else语句

格式

if (布尔表达式 1) {
   //表达式1的值为真,执行这里的代码
} else if (布尔表达式 2) {
   //表达式2的值为真,执行这里的代码
}  else {
   //意识表达式都为假,执行这里的代码
}

示例

public class Test1 {
	public static void main(String[] args){
	boolean foo = false;
	if(foo) {
	     System.out.print("A");
	}else if(3<4)
	     System.out.print("B");
	}
}

执行结果
在这里插入图片描述

4.switch 语句

switch case语句里,switch的小括号里可以放常量,但是一般不会放,这里需要放一个变量或表达式
注意:不可以放long型,float型,double型;

格式

switch(表达式){
    case1 :
       //执行的语句
       break; //不必要
    case2 :
       //执行的语句
       break; //不必要
       ……
    default : 
       //执行的语句
       break; //不必要
}

开关类型控制存在一个问题——击穿问题(没有break它就一直向下执行,直到遇到break或者到当前语句块结束才中断)
示例

public class Test1{
	public static void main(String[] args){
	    int a = 0;
	    switch(a){
	        case 0:
	            System.out.println("0");
	        case 1:
	            System.out.println("1");
	            break;
	        default:
	                break;
	    }
	}
}

执行结果
在这里插入图片描述
小练一下
知道年,月,计算这个从这个月的第一天到这年的最后一天还有多少天。

public class Test2 {
	public static void main(String[] args){
		int y = Integer.parseInt(args[0]);//main 传参,在执行命令时可以 输入参数 输入的参数都会被当作字符串放入args中当成他的执行参数来用 
		int m = Integer.parseInt(args[1]);
		int days = 0;
		switch(m){
			    case 1:
					days = days + 31;
				case 2:
					if((y%4==0&&y%100!=0)||y%100==0&&y%400==0){//判断闰年
						days = days + 29;
					}else{
						days = days + 28;
					}
				case 3:
					days = days + 31;
				case 4:
					days = days + 30;
				case 5:
					days = days + 31;
				case 6:
					days = days + 30;
				case 7:
					days = days + 31;
				case 8:
					days = days + 31;
				case 9:
					days = days + 30;
				case 10:
					days = days + 31;
				case 11:
					days = days + 30;
				case 12:
					days = days + 31;
		}
		System.out.println(days);
	}
}

执行结果
在这里插入图片描述

二、循环语句

1.for 循环

格式

for(1.数据初始化部分 ; 2.条件判断部分 ;3.条件改变部分 ) {
//循环体
}

上面这是标准形式的for循环,for循环括号中的 1、2、3都可以没有,如下:

int i = 0
for(; i <= 5; ){//一直循环0
    System.out.println(i);
}
int i = 0
for(;; ){//死循环
    i++;
    System.out.println(i);
}

但是for循环里的 “;” 一个都不能少!

这里说一下break和continue的区别

break: 结束当前循环,跳出循环后执行循环体后面的语句。
continue: 回归到循环体的判断条件继续执行循环。
示例

//break
public class Test3 {
    public static void main(String[] args) {
        for(int i=1; i<=10;i++){
           if(i == 3){
				break;
			}
			System.out.println(i);
        }
    }
}

执行结果
在这里插入图片描述

//countine    "逢7过"小游戏
public class Test3{
	public static void main(String[] args){
	    for(int i = 0; i < 100;i++){
	        String item = i + "";//任何一个东西加上字符串都会转为字符串
	        boolean flag = item.contains("7"); //判断字符串是否含有7
	        if(flag){
	            continue;
	        }else if(i%7==0){
	            continue;
	        }else{
	            System.out.println(i);
	        }
	    }
	}
}

执行结果(部分)
在这里插入图片描述

2.增强for循环

格式

for (声明语句 : 表达式) {
    //循环体
}

示例

public class Test4{
public static void main(String[] args){
		int[] arrays = {1,2,3,4,5,6};
		for(int temp : arrays){  //遍历数组
			System.out.println(temp);
		}
	}
}
3.while循环

格式

while(布尔表达式){
//循环体
}

** 注意**

public static void main(String[] args){
	while(3>4){//编译不通过
	System.out.println("A");
	}
}
public static void main(String[] args){
	int a = 3;
	int b = 4;
	while(a>b){//编译可以通过
	System.out.println("A");
	}
}

这是因为如果写成3>4,那么在循环过程中将不可能改变3或4的值,没有意义,所以编译不通过;如果写a>b,那么有可能在循环过程中改变a或b的值,还有意义,可以编译运行

知道循环次数的用for,不知道循环次数的用while

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值