流程控制(Java自我进阶笔记三)

流程控制(Java自我进阶笔记三)


前言

做任何事都要遵循一定的原则。程序设计也是如此,需要有流程 控制语言与用户的交流,并根据用户的输入决定程序要做什么怎么做。需要流程控制来实现用户的目的。如果没有流程控制语句那么整个系统会按照线性的顺序来执行,不能根据用户的输入决定执行的序列。
本文将讲述java 的流程控制,包含if,else,switch,while,do…while,for,foreach的意义以及用法

一、复合语句是什么?

java的复合语句是以整个块区为单位的语句,又称为块语句,由{开始到}结束。
在使用复合语句时需要注意,块语句中定义的变量的有效范围仅在块语句中。在块语
句外使用则会报错(在复合语句之外没有重名的变量下)

二、条件语句

1.1 if条件语句

语法如下

if(布尔表达式){
    语句序列;
}

布尔表达式:布尔表达式是必要参数,布尔表达式最后的值必须是一个布尔值,可以是一个单纯的布尔变量或常量,也可以是使用关系或者布尔运算符的表达式

语句序列 :可选参数,当布尔表达式为true时,执行语句序列。可以是一条或者多条语句。(若只有一条语句,可以省略{})(如果条件满足,你希望它进行的操作)
注意语句序列是可选参数如果没有时,{}可以省略,在后面加分号即可,但是不建议省略为了增强程序的可读性

boolean b=true;
if(b);
if(b){}

if使用举例

int a=250;
if(a==250)//如果a的值等于250会返回true,为假会返回false为布尔值
{
  System.out.println("a的值是100");//语句序列,如果为真,你希望进行的操作
}

if语句实例

package study;
import java.io.*;
public class Getif {
	public static void main(String args[])
	{
		int x=45;
		int y=12;
		if(x>y) {
			System.out.println("变量x大于变量y");
		}
		if(x<y)
		{
			System.out.println("变量y大于变量x");
		}
	}

}

1.2 if…else语句

 如果布尔表达式为true则执行if中的语句序列,如果为flase则执行else中的语句序列

语法如下:

if(表达式)
{
   若干语句
}
else
{
   若干语句
}

if else 省略和if语句省略类似。
实例

package study;
import java.io.*;
public class Getifelse {
	public static void main(String args[]) {
		int math=56;
		int java=100;
		if(math>60) {
			System.out.println("数学及格了");
			
		}else {
			System.out.println("数学没及格");
		}
		if(java>60) {
			System.out.println("60分万岁");
			
		}else {
			System.out.println("Java挂了");
		}
		
		
	}
	
 
}

1.3 if…else if语句

 if...else if多分枝语句针对某一件事的多种情况进行处理。通常表现为如果满足
 某种条件,就进行某种操作,否则如果满足另一种条件则执行另一个操作。

语法如下

if(条件表达式 1{
语句序列1
}
else if(条件表达式 2{
语句序列2
}
else if(条件表达式 2{
语句序列2
}

只执行正确的语句序列,有n个表达式但一定有一个是正确的。
省略规则相同

实例

package study;
import java.io.*;
public class GetTerm {
	public static void main(String args[]) {
		int x=20;
		if(x>30) {
			System.out.println("a的值大于30");
		}else if(x>10) {
			System.out.println("a的值大于10,但小于30");
		}else if(x>0) {
			System.out.println("a的值大于0,但小于10");
		}else {
			System.out.println("a的值小于0");
		}
	}
	

}

2 switch

当选项比较多时,如果用if语句我们需要列多个语句块。会显得比较冗杂,这时
switch是个不错的选择

语法如下:

switch(表达式)
{
case 常量值 1;
语句块1[break;]
...
case 常量值 n;
语句块n;
[break;]
default:
语句块 n+1;
[break;]
}

switch中的表达式的值必须是整型,字符型或者字符串类型,常量1到n需与表达式的类型一致;
如果表达式的值和某个case 后面的常量值相同,则执行该case 后面的若干个语句直到出现break语句;若没有相同则执行default语句后面的语句,如果没有default则不做任何处理。
实例

package study;
import java.io.*;
public class GetSwitch {
	public static void main(String args[]) {
		int week=2;
		switch(week) {
		case 1:
			System.out.println("Monday");
			break;
		case 2:
			System.out.println("Tuesday");
			break;
		case 3:
			System.out.println("Wednesday");
			break;
		default:
			System.out.println("Sorry,I don't Know");
			
		
		
		
		}
	}

}

三 循环语句

1 while 语句

  while 语句又称为条件判断语句,它的循环方式为利用一个条件来控制是否要继续
  反复执行这个语句

语法如下:

while(条件表达式)
{
执行语句
}

当条件表达式的返回值为真时则执行{}中的语句,执行完后重新判断条件表达式的返回值,直到返回值为假时,退出循环
实例

package study;
import java.io.*;
public class GetSum {
	public static void main(String args[]){
		int x=1;
		int sum=0;
		while(x<=10) {
			sum=sum+x;
			x++;
			
		}
		System.out.println("sum="+sum);
	}

}

2 do…while语句

与while语句不同的是do...while语句先执行一次再进行判断条件表达式,其它与while似;
也就是说do...while语句中执行语句至少被执行了一次

语法如下:

do
{
   执行语句
}
while(条件表达式);//(注意do...while语句中括号后面多了个*分号*)

do…while在结尾处多了个分号。
除此之外没有区别。

实例

package study;
import java.io.*;
public class Cycle {
	public static void main(String args[]) {
		int a=100;
		while(a==60)//不满足条件,不执行
		{
			System.out.println("Ok1");
			a--;
		}
		int b=100;
		do {
			System.out.println("ok2");
			b--;
		}while(b==60);//虽然不满足条件,但先执行一次
		
	}

}

3 for语句

for 语句是Java程序设计中最有用的循环语句之一。一个for循环可以重复执行某条
语句,知道条件得到满足

语法如下:

for(表达式1;表达式2;表达式3)
{
   语句序列
}

表达式1:初始化表达式,负责完成变量的初始化
表达式2: 循环条件表达式,值为boolean型的表达式,指定循环条件
表达式3: 循环后操作表达式,负责修整变量,改变循环条件

有时可以通过for语句实现无限循环
语法格式为:

for(;;)
{
   ...
}

对于这样的循环可以通过break语句跳出循环
例如:

for(;;)
{
   if(x<20break;
   x++;
}

实例

package study;
import java.io.*;
public class Circulate {
	public static void main(String args[])
	{
		int sum=0;
		for(int i=2;i<=100;i+=2)
		{
			sum+=i;
		}
		System.out.println("2到100直接的所以的偶数和为:"+sum);
	}

}

4 foreach语句

foreach语句是for语句的简化版本,不能完全取代for语句,同时foreach并不是一个
关键字。习惯上将这种for语句称为foreach语句

语法如下:

for(元素变量x:遍历对象obj)
{
  引用了x的Java语句;
}

实例

package study;
import java.io.*;
public class Repetition {
	public static void main(String args[])
	{
		int arr[]= {7,10,1};
		System.out.println("一维数组的元素分别为:");//只是输出汉字,这次是分开输出
		for(int x:arr) {
			System.out.println(x);
		}
	}

}

四 循环控制

  循环控制包括两方面的内容,一方面是控制循环变量的变化方式,另一方面是控制
循环的跳转。

1 break语句

表示跳出当前循环体,从而中断当前循环.(如果多层循环,只跳出最内层的循环,
且只跳出一层)

实例

package study;
import java.io.*;
public class BreakTest {
	public static void main(String args[])
	{
		for(int i=0;i<=100;i++)
		{
			System.out.println(i);
			if(i==6) {
				break;
			}
		}
		System.out.println("--end--");	}

}

如果想要跳出外层循环,Java提供标签功能
语法如下:

标签体:循环体{
  break 标签体;

}

标签名:任意标识符
循环体:任意循环语句
break标签名:break指定跳出的循环体,此标签体必须和break的标签一致。
带有标签的break语句,可以跳出内层循环也可以跳出外层循环。

实例

package study;
import java.io.*;
public class BreakOutsideNested {
	public static void main(String args[])
	{
		Loop:for(int i=0;i<3;i++)
		{
			for(int j=0;j<6;j++)
			{
				if(j==4) {
					break Loop;
				}
				System.out.println("i="+i+" "+"j="+j);
			}
		}
	}

}

2 continue 语句

 continue不是立即跳出循环体,而是跳出本次循环结束前面的语句,回到循环的条件
 测试部分,重新开始循环(跳过本次循环)
package study;
import java.io.*;
public class ContinueTest {
	public static void main(String args[])
	{
		for(int i=1;i<20;i++)
		{
			if(i%2==0) {
				continue;
			}
			System.out.println(i);
		}
	}

}

和break语句一样,continue也具有标签功能
语法如下:

标签体:循环体{
  continue 标签体;

}

标签名:任意标识符
循环体:任意循环语句
continue标签名:continue指定跳出的循环体,此标签体必须和break的标签一致。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值