JAVA基础学习笔记(2):顺序结构、分支结构、循环结构、break和continue

1 程序流程控制

1.1 顺序结构

Java中定义成员变量时采用的合法的向前引用。
在这里插入图片描述

1.2 分支结构

1.2.1 if、if-else、if-else if-else

形式一:

if(条件表达式){
	执行代码块;
}

形式二:

if(条件表达式){
	执行代码块1;
}
else{
	执行代码块2;
}

形式三:

if(){
	执行代码块1;
}
else if{
	执行代码块2;
}
......
else{
	执行代码块n;
}

1.2.2 switch-case

使用形式:

swicth(表达式){
case 常量1:
	语句1;
	break;//可以不加
case 常量2:
	语句2;
	break;
......
default:
	语句;
	break;
}
import java.util.Scanner;
/**
 * 功能:测试Scanner对象输入和switch-case语句
 * @author wuzec
 *
 */
public class SwitchTest {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int i = scan.nextInt();
		switch(i) {
		case 0:
			System.out.println("zero");
			break;
		case 1:
			System.out.println("one");
			break;
		case 2:
			System.out.println("zero");
			break;
		default:
			System.out.println("another number");
			break;	
		}
	}
}

1.3 循环结构

1.3.1 for循环

使用形式:

for(①初始化部分;②循环条件部分;④迭代部分){
	③循环体部分;
}

②循环条件部分判断为true运行③,为false跳出当前循环。

import java.util.Scanner;
/**
 * 功能:输入m、n两个整数,得到最大公因数和最小公倍数
 * @author wuzec
 *
 */
public class TestFor {
	public static void main(String[] args) {
		
		Scanner sacn = new Scanner(System.in);
		
		System.out.println("Input first number:");
		int m = sacn.nextInt();
		System.out.println("Input seconde number:");
		int n = sacn.nextInt();
		
		//对输入的数字进行大小排序
		int max,min;
		if(m>=n) {
			max = m;
			min = n;
		}
		else {
			max = n;
			min = m;
		}
		
		//最大公约数
		for(int i=min; i>=1;i--) {
			if(m%i==0 && max%i==0) {
				System.out.println("最大公约数为 "+ i);
				break;
			}
		}
		
		//最小公倍数
		for(int i=max; i<=m*n ;i++) {
			if(i%m==0 && i%n==0) {
				System.out.println("最小公倍数为 " + i);
				break;
			}
		}
	}
}

1.3.2 while循环

使用形式:

①初始化部分
while(②循环条件部分){
	③循环体部分;
	④迭代部分;
}

②循环条件部分判断为true运行③④,否则跳出循环。
注意迭代部分一定要写,不然会出现死循环。

/**
 * 功能:使用while循环,打印100以内的偶数
 * @author wuzec
 *
 */
public class TestWhile {
	public static void main(String[] args){
		int i = 0;
		while(i<=100) {
			if(i%2 == 0) {
				System.out.println(i);
			}
			i++;
		}	
	}
}

1.3.3 do-while循环

使用形式:

①初始化部分
do{
	③循环体部分;
	④迭代部分;
}while(②循环条件部分);

do-while结构至少执行一次循环体。
开发中使用for和while较多,较少使用do-while。

/**
 * 功能:使用do-while循环,打印100以内的偶数
 * @author wuzec
 *
 */
public class TestDoWhile {
	public static void main(String[] args){
		int i = 0;	
		do {
			if(i%2 == 0) {
				System.out.println(i);
			}
			i++;
		}while(i<=100);
	}
}

1.4 嵌套循环

将一个循环放在另一个循环体内,就形成了嵌套循环。其中, for ,while ,do…while均可以作为外层循环内层循环

/**
 * 功能:循环嵌套实现九九乘法表的输出
 * @author wuzec
 *
 */
public class TestNineNine {
	public static void main(String[] args) {
		int m = 1;
		int n = 1;
		for(int i=1; i<=9; i++) {
			for(int j=1; j<=i; j++){
				System.out.print(i + "*" + j + "=" + (i*j) + " ");
			}
			System.out.println();
		}
	}
}
/**
 * 功能:使用嵌套循环输出100以内的质数
 * @author wuzec
 *
 */
public class PrimeNumber {
	public static void main(String[] args) {
		boolean flag = true; //表示是否除尽
		
		for(int i=2; i<=100; i++) {//遍历100以内的自然数
			flag = true;
			for(int j=i-1; j>1; j--) {//j被i去除
				if(i % j == 0) {//i被j除尽
					flag = false;
				}
			}
			if(flag) {
				System.out.println(i);
			}
		}
	}
}
/**
 * 功能:使用嵌套循环输出100以内的质数(优化一)
 * @author wuzec
 *
 */
public class PrimeNumber {
	public static void main(String[] args) {
		boolean flag = true; //表示是否除尽
		
		for(int i=2; i<=100; i++) {//遍历100以内的自然数
			flag = true;
			for(int j=i-1; j>1; j--) {//j被i去除
				if(i % j == 0) {//i被j除尽
					flag = false;
				}
			}
			if(flag) {
				System.out.println(i);
				break;//优化一
			}
		}
	}
}
/**
 * 功能:使用嵌套循环输出100以内的质数
 * @author wuzec
 *
 */
public class PrimeNumber {
	public static void main(String[] args) {
		boolean flag = true; //表示是否除尽
		
		for(int i=2; i<=100; i++) {//遍历100以内的自然数
			flag = true;
			for(int j=i-1; j>1; j--) {//j被i去除
				if(i % j == 0) {//i被j除尽
					flag = false;
					break;
				}
			}
			if(flag) {
				System.out.println(i);
			}
		}
	}
}
/**
 * 功能:使用嵌套循环输出100以内的质数(优化二)
 * @author wuzec
 *
 */
public class PrimeNumber {
	public static void main(String[] args) {
		boolean flag = true; //表示是否除尽
		
		for(int i=2; i<=100; i++) {//遍历100以内的自然数
			flag = true;
			for(int j=(int)Math.sqrt(i); j>1; j--) {//优化二
				if(i % j == 0) {//i被j除尽
					flag = false;
					break;//优化一
				}
			}
			if(flag) {
				System.out.println(i);
			}
		}
	}
}

1.5 break与continue

break:在switch-case语句中结束一个switch,在循环结构中结束当前循环。
continue:在循环结构中结束当次循环。
注意:break和continue可以指定表示结束。

		label1:for(int i=1; i<=3 ;i++) {
			for(int j=1; j<=3; j++) {
				break label1;//结束指定标识的一层循环结构
			}
		}

		label2:for(int i=1; i<=3 ;i++) {
			for(int j=1; j<=3; j++) {
				continue label2;//结束指定标识的一层循环结构当次循环
			}
		}	

注意:
return:并非专门用于结束循环的,它的功能是结束一个方法。 当一个方法执行到一个return语句时,这个方法将被结束。

参考资料:
[1]尚硅谷宋康红java基础教程

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值