Java(五)流程控制--分支语句与循环语句

一、分支语句

1、if分支语句

if 概述在某些情况下,需要当某一条件满足时才执行相应代码,条件不满足则执行其他代码。

if 四种形式单分支、双分支、多分支、嵌套if

---->单分支

Java(五)流程控制--分支语句与循环语句

---->双分支

Java(五)流程控制--分支语句与循环语句

练习:输出两个数中的最大数

双分支if语句可以通过三目运算来转换,但前提是双分支各语句中必须是一个表达式;

实例一:

public class Test{
	
	public static void main(String[] args) {
		int i=1;
		if(i==1){
			System.out.println("相等");
		}else{
			System.out.println("不相等");
		}
	}
}

//上面if双分支语句不能转换成如下三目运算:i==1?System.out.println("相等"):System.out.println("不相等");

实例二:

public class Test{
	
	public static void main(String[] args) {
		int i=1;
		if(i==1){
			i=i+1;
		}else{
			i=i+2;
		}
		System.out.println(i);
	}
}

//上面if双分支语句可以转换成如下三目运算:int z = i==1?i+1:i+2;

实例三:

public class Test{
	
	public static void main(String[] args) {
		int i=1;
		if(i==1){
			int x=1;
			i=i+x;
		}else{
			int y=2;
			i=i+y;
		}
		System.out.println(i);
	}
}

//上面if双分支语句不能转换成如下三目运算:int z = i==1?int x=1;i+x;:int y=2;i+y;

---->双分支多分支——多个语句块中只执行一个语句块

Java(五)流程控制--分支语句与循环语句

public class Test{
	
	public static void main(String[] args) {
		int i=2;
		if(i==1){//如果i的值为1,满足情况;否则不满足
			int x=1;
			i=i+x;
		}else if(i>1){//如果i不等于1且i的值大于1,则满足情况
			int y=2;
			i=i+y;
		}else{
            int z=3;
            i=i+z;
        }
		System.out.println(i);
	}
}

---->嵌套if——一个分支结构中包含另一个完整分支结构:当有多个条件时分别判断多个条件可以提高程序可读性

Java(五)流程控制--分支语句与循环语句

public class Test{
	
	public static void main(String[] args) {
		int i=2;
		if(i>1){
            if(i==2){//需要同时满足i>1且i==2,才算满足条件
                int x=1;
			    i=i+x;
            }else{
                int z=3;
			    i=i+z;
            }
		}else{
			int y=2;
			i=i+y;
		}
		System.out.println(i);
	}
}

注意:if分支语句中去掉括号,则对第一行代码有效。else不能单独使用。

2、switch分支语句

---->switch分支语句语法:

Java(五)流程控制--分支语句与循环语句

public class Test {
	public static void main(String[] args) {
		int i=1;
		switch(i){
			case 1 :
				System.out.println("代码1");
                break;
			case 2 :
				System.out.println("代码2");
                break;
			default :
				System.out.println("代码3");
		}
		System.out.println("代码4");
	}
}

以上代码输出结果为:代码1

                                    代码4 

二、循环语句

------>while循环

Java(五)流程控制--分支语句与循环语句

 ------>do-while循环

Java(五)流程控制--分支语句与循环语句

注意:初始情况不满足循环条件时

while循环一次都不会执行

do-while循环不管任何情况都至少执行一次

 ------>for循环

public class Test {
	public static void main(String[] args) {
		for (int i = 0; i < 3; i++) {
			if (i == 1) {
				continue;//continue用于结束当前循环进入下次循环
                //return;//return只结束其所在方法的运行
                //break;
                //break用于结束其所在当前循环语句块程序的运行,但不会影响其所在语句块外部代码的执行。

			}
			System.out.println("in code"+i);
		}
		System.out.println("out code");
	}
}

以上是关于循环的部分知识,下面将附上我自己在课后的练习代码,如果有兴趣可以自己运行一下查看结果:

import java.util.Scanner;
public class PracticTwo{

	public static void main(String args[]){
		int i=5000;
		System.out.println("请输入积分值:");
		Scanner scanner = new Scanner(System.in);
		int x = scanner.nextInt();
		
		if(x<=0){
			System.out.println("您还没有积分!");
		}else if(x<5000){
			System.out.println("国庆节快乐,送您一张贺卡!");
		}else if(x>=5000 && x<10000){
			System.out.println("国庆节快乐,送您一个杯子!");
		}else if(x>=10000 && x<30000){
			System.out.println("国庆节快乐,送您一套餐具!");
		}else if(x>=30000){
			System.out.println("国庆节快乐,送您一套精美骨质瓷器!");
		}
		
	}

}

class PracticTwo01{

	public static void main(String args[]){
		System.out.println("请输入i值:");
		Scanner scanner = new Scanner(System.in);
		int i= scanner.nextInt();

			//byte i=2;
			//int i=3;
			//float i=2;
			//long i =3;
			//String i="1";//String JDK7之后的允许使用
		switch(i){
				//case "1":
			case 1 :
				System.out.println("11111111");
				break;//跳出当前switch
				//System.out.println("#####");
				//在break或return之后的代码程序访问不到!!!!!
				//case "2":
			case 2 :
				System.out.println("22222222");
				break;
				//case "3":
			case 3 :
				System.out.println("33333333");
				break;
				//return;//结束程序
			default:
				System.out.println("输出错误——Default!");
		}
		System.out.println("############没有return###############");
	}
}

class PracticTwo02{

	public static void main(String args[]){
		int i=1;
		int k=2;
		switch(i){
			case 1 :
				System.out.println("i=1");
				switch(k){
					case 1 :
						System.out.println("k=1");
						//break;//break只会结束当前switch
						//return;//结束当前方法
					case 2 :
						System.out.println("k=2");
						//break;
					case 3 :
						System.out.println("k=3");	
				}
				//break;
			case 2 :
				System.out.println("i=2");
				break;
			case 3 :
				System.out.println("i=3");
			default:
				System.out.println("**********default!!!!");
		}
	}
}

class PracticTwo03{

	static void show(){
		System.out.println("show方法");
		//System.exit(0);
		return;//return只结束其所在方法的运行。
	}
	public static void main(String[] args) {
		show();
		//return;//在此位置放置return后之后的代码将不能被执行,会报错。
		System.out.println("main方法");
		//return;
	}
}

class PracticTwo04{

	public static void main(String args[]){
		System.out.println("aaaaaaaaaaaaaaaaaaaa");
	}

	static{
		System.out.println("ddddddddddddd");
	}
	
	//System.out.println("@@@@@@@@@@@@@");

	static void Vao(){
		System.out.println("ahahahahhahah");
	}
}

class PracticTwo05{
	//三角形	
	public static void main(String args[]){
		int n=9,i;
		for(i=1;i<=9;i++){
			for(int j=1;j<=i;j++){
				System.out.print("*");
			}
			System.out.println("          i="+i);
		}
		System.out.println("i=" + i);
	}
}

class PracticTwo06{

	//菱形		
	public static void main(String args[]){
		int n=9;
		for(int i=1;i<=n;i++){
			for(int j=0;j<=(n-i);j++){
				System.out.print(" ");//输出空格
			}
			for(int k=1;k<=(2*i)-1;k++){
				System.out.print("*");
			}
			System.out.println();
		}
		for(int i=n-1;i>=0;i--){
			for(int j=0;j<=n-i;j++){
				System.out.print(" ");
			}
			for(int k=1;k<=(2*i)-1;k++){
				System.out.print("*");
			}
			System.out.println();
		}
	}
}

class PracticTwo07{

	public static void main(String args[]){
		int i=9;
		for(;;){
			System.out.println("############");
		}//死循环,DOS界面中按住Ctrl+C停止死循环。
	}
}

class PracticTwo08{

	static void loop(){
		int i=8;
		for(int j=0;j<i;j++){
			System.out.println("^^^^^^^^^^^^j="+j);
			if(j==3){
				break;
			}
		}
	}

	public static void main(String args[]){
		int n=9;
		int i=0,k;
		k=n;
		
		loop();
		while(i<=n){
			System.out.println("----------->"+i*2 +"\ti=" +i);
			i++;
			if(i==6){
				//break;//结束当前循环
				//return;
			}
		}

		do{
			if(k==2){
				continue;//结束满足条件的当次循环进入下次循环
			}
			System.out.println("&&&&&&&&&&&&&&&&&&&\t"+ --k);
			//k--;

			if(k==5){
				break;
				//continue;//放在此处没有作用	
			}
		}while(k>=0);
	}
}

class PracticTwo09{

	public static void main(String args[]){
		int i=2;
		if(i==3){
			//break;
		}
	}
}

class PracticTwo10{

	//输出从1到100之间的偶数
	public static void main(String args[]){
		for(int i=1;i<=100;i++){
			if(i%2==1){
				continue;
			}
			System.out.println("i="+i);
		}

		for(int i=2;i<=100;i=i+2){
			System.out.println("i="+i);
		}
	}
}