Java_基础_10.控制语句(control statement)

控制语句

结构作用
顺序代表“先执行a,再执行b”的逻辑
选择代表“如果…,则…”的逻辑。
循环代表“如果…,则再继续…”的逻辑。
选择结构
  1. if单选择结构
  2. if-else双选择结构
  3. if-else if-else多选择结构
  4. switch结构
if

省略

if else
/**
 * 测试if单选择结构
 * @author creep_creep_creep
 *
 */
public class A_if {
	public static void main(String[] args) {
		double d=Math.random();
		System.out.println(d);
		int i=(int)(6*Math.random()+1);
		System.out.println("************");
		if(i<6) {
			System.out.println("小");
		}else {
			System.out.println("大");
		}
	}
}
if else if
/**
 * 测试if else if
 * @author creep_creep_creep
 *
 */
public class A_ifelse {
	public static void main(String[] args) {
		int age=(int)(100*Math.random());
		System.out.println("年龄"+age);
		
		if (age<15) {
			System.out.println("儿童");
		}else if(age<25) {
			System.out.println("青年");
		}else if (age<45) {
			System.out.println("中年");
		}else if (age<65) {
			System.out.println("中老年");
		}else if (age<85) {
			System.out.println("老年");
		}else {
			System.out.println("老寿星");
		}
	}
}
switch
/**
 * 测试switch语句
 * 遇到多值判断的时候使用
 * @author creep_creep_creep
 *
 */
public class A_switch {
	public static void main(String[] args) {
		int month=(int)(1+12*Math.random());
		System.out.println("月份"+month);
		
		switch(month) {//正数,枚举,1.7之后的字符串
		case 1:
			System.out.println("一月");
			break;
		case 2:
			System.out.println("二月");
			break;
		case 3:
			System.out.println("三月");
		}
	}
}
循环结构
类型说明
当型当布尔表达式条件为true时,反复执行某语句,当布尔表达式的值为false时才停止循环,比如:while与for循环。
直到型先执行某语句, 再判断布尔表达式,如果为true,再执行某语句,如此反复,直到布尔表达式条件为false时才停止循环,比如do-while循环。
while循环

语法结构:

while (布尔表达式) {
    循环体;
}
  • 在循环刚开始时,会计算一次“布尔表达式”的值,若条件为真,执行循环体。而对于后来每一次额外的循环,都会在开始前重新计算一次。
  • 语句中应有使循环趋向于结束的语句,否则会出现无限循环–––"死"循环。

while循环结构流程图。
在这里插入图片描述

/**
 * 测试while
 * @author creep_creep_creep
 *
 */
public class A_while {
	public static void main(String[] args) {
		int i=1;
		int sum=0;
		
		while (i<=100) {
			sum=sum+i;
			i++;
		}
		System.out.println(sum);
	}
}
do-while循环

语法结构:

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

do-while循环结构会先执行循环体,然后再判断布尔表达式的值,若条件为真,执行循环体,当条件为假时结束循环。do-while循环的循环体至少执行一次。
1.png

/**
 * 测试Dowhile循环
 * @author creep_creep_creep
 *
 */
public class A_do {
	public static void main(String[] args) {
		int i=0;
		int sum=0;
		do {
			sum=sum+i;
			i++;
		}while(i<=100);
		System.out.println(sum);
	}
}
for循环

语法结构:

for (初始表达式; 布尔表达式; 迭代因子) {
      循环体;
}

for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。for循环在第一次反复之前要进行初始化,即执行初始表达式;随后,对布尔表达式进行判定,若判定结果为true,则执行循环体,否则,终止循环;最后在每一次反复的时候,进行某种形式的“步进”,即执行迭代因子。

A. 初始化部分设置循环变量的初值
B. 条件判断部分为任意布尔表达式
C. 迭代因子控制循环变量的增减
for循环在执行条件判定后,先执行的循环体部分,再执行步进。

1.png

/**
 * 测试for循环
 * @author creep_creep_creep
 *
 */
public class A_for {
	public static void main(String[] args) {
		int sum=0;
		
		for(int i=1;i<=100;i++) {//for循环定义的i只在循环中有效
			sum=sum+i;
		}
		
		System.out.println(sum);
		
		for(int j=1,k=j+10; j<5; j++,k=j*2) {
			System.out.println(k);
		}
		
		for(;;) {
			System.out.println("爱你到永远");//会一直循环
		}
	}
}
嵌套循环(nesting loop)

在一个循环语句内部再嵌套一个或多个循环,称为嵌套循环。while、do-while与for循环可以任意嵌套多层。

/**
 * 嵌套循环
 * @author creep_creep_creep
 *
 */
public class A_nesting {
	public static void main(String[] args) {
		int i,j;
			
		for(i=0;i<4;i++) {
			for(j=i;j>=0;j--) {
				System.out.print(i+" ");
			}
			System.out.println();
		}
		
		for(i=4;i>=0;i--) {
			for(j=i;j>=0;j--) {
				System.out.print(i+" ");
			}
			System.out.println();
		}
	}
}
break语句和continue语句

在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。

/**
 * 测试循环语句中的break
 * @author creep_creep_creep
 *
 */

public class A_break {
	public static void main(String[] args) {
		int total=0;//定义计数器
		System.out.println("begin");
		while(true) {
			total++;//循环加一
			int i=(int)Math.round(100*Math.random());
			System.out.println(i);
			
			if(i==88) {//当等到88是对出循环
				break;//结束整个循环
			}
		}
		System.out.println("Game over,used "+total+" times");//输出循环次数
	}
}

continue 语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

/**
 * 测试continue的使用
 * @author creep_creep_creep
 *
 */
public class A_continue {
	public static void main(String[] args) {
		int count =0;
		for(int i=100;i<160;i++) {
			if(i%3==0) {
				continue;
			}
			System.out.print(i+"、");
			count++;
			
			if(count%5==0) {
				System.out.println();
			}
		}
	}
}
  1. continue用在while,do-while中,continue 语句立刻跳到循环首部,越过了当前循环的其余部分。
  2. continue用在for循环中,跳到for循环的迭代因子部分。
带标签的break和continue

“标签”是指后面跟一个冒号的标识符,例如:“label:”。对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。

/**
 * 测试带标签的Break和continue
 * @author creep_creep_creep
 *
 */
public class A_outer {
	public static void main(String[] args) {
		outer:for(int i=101;i<150;i++) {
			for(int j=2;j<i/2;j++) {
				if(i%j==0) {
					continue outer;
				}
			}
			System.out.println(i+" ");
		}
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值