Java基础---流程结构

流程结构

所有问题都可以通过顺序结构,选择结构,循环结构来解决


一、顺序结构

顾名思义,顺序结构就是自上而下的,按照代码顺序执行的结构

System.out.println("hello,1");
System.out.println("hello,2");
System.out.println("hello,3");

 


二、选择结构

if 语句

if单选择结构if双选择结构if多选择结构

//单选择
Scanner scanner = new Scanner(System.in);
if(scanner.hasNextLine()){
	String str = scanner.next();
	System.out.println(str);
}
//双选择
if(scanner.hasNextLine()){
	String str = scanner.next();
	System.out.println(str);
}else{
	System.out.println("nothing");
}
//多选择
if(scanner.hasNextLine()){
	String str = scanner.next();
	System.out.println(str);
}else if(a > b) {   // a>b仅为举例,其他返回boolean值的语句均可
	System.out.println("no idea");
}else{
	System.out.println("nothing");
}

 

switch 语句

除了if多选择结构,还有switch多选择结构
判断一个变量与一系列值中某个值是否相等,每个值称为一个分支

switch语句中的变量类型可以是byte, short, int, char

  • 从Java SE 7开始,switch开始支持字符串String类型了!!!
  • 字符串本质还是数字,通过String类型的值对应的hashcode进行匹配
switch(expression){
	case value :
		//语句
		break;
	case value :
		//语句
		break;
	case value :
		//语句
		break;
	default :		//可选
		//语句
}

case穿透

如果case中不写break去终止的话,switch匹配成功以后会把下面的所有情况全部输出直到下一个break或全部走完

 
switchif相比,if判断区间会比较方便,switch是匹配一个具体的值

 


三、循环结构

while, do...while, for, 以及在Java 5中引进的主要用于数组的增强型for each循环

1、while 循环

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

我们大多数情况下是会让循环停下来的,所以需要一个让表达式失效的方式来结束循环
少部分情况是需要循环一直执行,如服务器的请求响应监听,等待客户端连接,定时检查等

 


2、do…while 循环

do {
	//代码语句
} while(布尔表达式);

while是先判断后执行,do...while是先执行后判断,do...while保证循环体 至少会执行一次

 


3、for循环

for(初始化; 布尔表达式; 更新){
	//代码语句
}
for(int i = 0; i < 100; i++){
	//代码语句
}

for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
for循环执行的次数是在执行前就确定的

 

for循环的小练习
  1. 计算0到100之间的奇数和偶数的和
  2. whilefor循环输出1-1000之间能被5整除的数,并且每行输出3个
  3. 打印九九乘法表
  4. 打印三角形

 


4、增强for循环

Java 5 引入的主要作用与数组或集合的增强型for循环

for (声明语句:表达式){
	//代码语句
}

int[] nums = {10, 20, 30, 40}
//遍历数组的元素
for (int x : nums){
	System.out.println(x);
}
  • 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配,其作用域限定在循环语句块,其值与此时数组元素的值相等。
  • 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。

 


5、break, continue, goto

  • break在任何循环语句的主体部分,均可用break控制循环的流程。用于强行退出循环,不执行循环中剩余的语句(在switch语句中也使用)。
     
  • continue在循环语句中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
     
  • goto关键字很早就在程序设计语言中出现,尽管仍是Java中的保留字,但并未在语言中得到正式使用。Java没有goto,然而在breakcontinue身上可以看到一些goto的影子===>带标签的breakcontinue
    • 标签是指在后面跟一个冒号的标识符,例如:label:
    • 对Java来说唯一用到标签的地方是在循环语句之前。通常breakcontinue只会中断当前循环,如果我们需要使用嵌套循环,在外循环之前设置标签,这样我们在嵌套的循环里使用breakcontinue的时候,就会中断到存在标签的地方。
//打印101~105之间的质数
outer:for(int i = 101; i < 150; i++){
	for(int j = 2; j < i/2; j++){
		if(i % j == 0){
			continue outer;
		}
	}
	System.out.print(i + " ");
}

 


练习的答案网上应该有很多,之后有机会再添上吧^ ^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值