JAVA基础学习-语法基础(3)

控制语句

java控制语句:

  •           选择结构:if语句,switch语句;
  •           循环结构:for,while,do while;
  •           控制循环:break,continue;

1、if语句

if语句被称为分支语句。

if语句的4种编写方式:
    1、if(布尔表达式){                  //表达式结果只能为真或假。----->可能都不执行
                    java语句;
                    java语句;
                    .......
             }

    2、if(布尔表达式){                 //条件为真,   执行if。  ----->保证会执行其中一个分支
                   java语句;
                   java语句;
                   .......
            }else{                                       //条件为假,   执行else括号内容
                   java语句;
                   .......
            }

    3、if (布尔表达式){                          // ----->if语句只要有一个分支执行,整个If语句就结束
                    java语句;
                    java语句;
                    .......
    
             }else if(布尔表达式){
                    java语句;
                    .......
             
             }else if(布尔表达式){
                    java语句;
                    .......

             }

    4、if (布尔表达式){                          //比起第3 种有else分支
                    java语句;
                    java语句;
                    .......
             }else if(布尔表达式){
                    java语句;
                    .......
             }else if(布尔表达式){
                    java语句;
                    .......

             }else{
                    java语句;
                    java语句;
             }

注意:

  1. 带有else分支的可以保证一定会有分支执行。
  2. 所有的控制语句都可以嵌套使用,在合理嵌套的情况下。

举例代码:


/*
		需求:判断当前天气
			  晴天:天气温度30度以上:性别男--->戴墨镜;性别女---->擦防晒
			  下雨:带雨伞  ---->  男带大黑伞,女带粉色伞 


*/
public class IfTest03
{
	public static void main(String[] args){
			java.util.Scanner s = new java.util.Scanner(System.in);
			System.out.println("进入天气智能穿戴系统:");
			
			//接收天气
			System.out.print("选择下雨/1 或 晴天/2: ");	
			int num = s.nextInt();
			
			if(num != 1 & num !=2){
				System.out.println("无效,天气请从1或2中选择!");
				return;
			}//这里应该加上返回,否则会继续进行性别输入判断

			//接收性别
			System.out.print("男/1 或 女/0? ");
			int sex = s.nextInt();
			//这里应该加上返回,否则会继续进行温度输入判断

			if(sex != 0 & sex !=1){
				System.out.println("无效,性别请从0或1中选择!");
				return;
			}

			if (num == 1)
			{
				System.out.println("下雨啦~");
				System.out.print("  性别是:" + sex);

				if(sex == 1){
					System.out.print("  请带大黑伞!");
				}else{
					System.out.print("  请带粉红伞!");
				}

			}else{
				
				//接收温度
				System.out.print("请告知当前温度: ");
				int temperature = s.nextInt();

				System.out.println("好天气!");
				System.out.print("  性别是:" + sex);
				System.out.print("  温度为:" + temperature);

				if (temperature >= 30)
				{
					if (sex == 1)
					{
						System.out.println("  注意佩戴墨镜!");
					}else{
						System.out.println("  注意携带防晒喷雾!");
					}
				}
			}
		
		//遇到疑问:声明定义的性别man可以进去,键盘输入的性别man进不去man情况条件;
		//字符串定义的性别键盘输入判别不了,整数类型的性别键盘输入ok,为什么呢?
          //这是因为声明的性别String sex = “man”;是引用数据类型,不能用==作为关系判断运算。

		//扩充知识点
		//字符串判断条件用==的时候,只是判断地址相等,字符串是否相等用compare to
		//由于键盘输入的地址与判断的字符串地址始终不相等,因此进不去相等的条件。
		
	}
}

2、switch语句

1. switch表示开关或切换。

2. 语法结构:switch(int或String类型的字面值或变量){

                                        case int或String类型的字面值或变量:
                                                    java语句;
                                                    java语句;
                                                    ......
                                                    break;       //break没有写的话会依次执行下面语句
                                        case int或String类型的字面值或变量:
                                                    java语句;
                                                    ......
                                                    break;
                                        case int或String类型的字面值或变量:
                                                    java语句;
                                                    ......
                                                    break;
                                        ......
                                        default:
                                                    java语句;
                                                    ......
                                  }

3. switch执行原理:

            switch后面的小括号当中的”数据“和case后面的”数据“进行一一匹配,匹配成功的分支则执行;
            按照自上而下的顺序依次匹配;

4. 分支中有break语句,则整个switch终止;
            分支中没有break语句,则直接进入下一个分支执行(不进行匹配);
            ----->该现象称为case穿透现象,[提供break语句可以避免穿透]。

5. 所有分支都没有匹配成功,有default语句的话,则执行default分支中的程序。

6. switch和case后面只能是int和String类型数据,byte, short, char,也可以,因为可以自动转换为int类型。

7. case可以合并。
                        int i = 10;
                        switch(i){
                            case 1:  case 2:  case3:  case  10:
                                        System.out.println("Test code!");
                        }

举例代码:

public class SwitchTest02
{
	public static void main(String[] args){
			java.util.Scanner s =new java.util.Scanner(System.in);
			
			System.out.print("请输入周几:");
			String str = s.next();

			switch(str){
				case "周一":
						System.out.println(1);
						break;
				case "周二":
						System.out.println(2);
						break;
				case "周三":
						System.out.println(3);
						break;
				case "周四":
						System.out.println(4);
						break;
				case "周五":
						System.out.println(5);
						break;
				case "周六":    case "周日":
						System.out.println(67);
						break;
				default:
						System.out.println("error!");

			}
	}
}

switch练习作业——简单计算器实现:https://blog.csdn.net/catherGYY/article/details/116723207

循环结构:

  • 在程序中需要反复、重复执行的代码,若没有循环结构需要重复编写代码,麻烦。
  • 将需要反复执行的代码放到”循环体“,联合计数器,共同控制这段需要反复执行的代码。
  • for循环、while循环、do...while循环

3、for循环

a. for循环语法结构:
             for(初始表达式;布尔表达式;更新表达式){
                    //是需要重复执行的代码片段[循环体:由java语句构成]       
             }
        
b. for循环的执行过程/执行原理?[很重要]
             b.1 初始表达式、布尔表达式、更新表达式都不是必须的;[分号是必须的]
             b.2 初始表达式最先执行并且整个for循环中只执行一次;
             b.3 布尔表达式必须是true/false;
             b.4 for的执行过程:
                   * 先执行初始化表达式,并且该表达式只执行一次;
                   * 判断布尔表达式的结果true or false:
                         true--->执行循环体;执行更新表达式;---->再一次判断布尔表达式.......
                         false--->循环结束;                            

举例代码1:

/*
		循环语句和条件判断语句嵌套使用:[for循环和if语句嵌套]

*/

public class ForTest04
{
	public static void main(String[] args){
			//找出1~100所有的奇数
			for(int i = 1; i <= 100; i++){
				if (i%2==1)
				{
					System.out.println("---->"+i);
				}
			}

			for (int i = 1; i < 100 ; i+=2 )
			{
					System.out.println("->"+i);   //优先该方案,代码少,效率高,循环次数较少
			}
	}
}

举例代码2:

public class ForTest08
{
	public static void main(String[] args){

			/*
			需求:九九乘法表实现

			1*1=1
			2*1=2    2*2=4
			3*1=3    3*2=6   3*3=9
			......
			......
			9*1=9    9*2=18   9*3=27   ............9*9=81
			*/

			for (int i = 1;i<=9 ;i++ )
			{
				for (int j = 1;j<=i ;j++ )
				{
						System.out.print(j+"*"+i+"="+(i*j)+"   ");
				}
				System.out.println("\r\n");   ///第"+i+"次循环
			}

	}
}

for循环练习作业——找素数:https://blog.csdn.net/catherGYY/article/details/116723285

4、while循环

while循环语句:
            1、while循环的语法结构:
                     while(布尔表达式){
                            循环体;
                     }

            2、while循环的执行原理:
                     先判断布尔表达式的结果:
                            *true
                                    ——执行循环体
                                              *判断布尔表达式的结果:
                                                    *true
                                                            ——执行循环体
                                                                    *判断布尔表达式的结果:
                                                                            *true
                                                                                    ——执行循环体
                                                                                            *判断布尔表达式的结果:
                                                                                                ......
                                                                            *false
                                                                                    ——循环结束
                                                        *false
                                                                ——循环结束
                            *false
                                    ——循环结束

            3、while循环的循环次数:
                     0~N次。
                     注意:while循环的循环体可能执行0次。

举例代码:

//while循环输出1~10

public class WhileTest02
{
	public static void main(String[] args){
		int i = 1;
		while(i <= 10){
			System.out.println(i);
			i++;
		}
		
		System.out.println("---------------------------");
		int j = 10;
		while (j>0)
		{
			//System.out.println(j--);    //相当于下面两行
			System.out.println(j);
			j--;
		}

		while (j>0)
		{
			//System.out.println(--j);    //相当于下面两行
			j--;
			System.out.println(j);			
		}

	}
}

5、dowhile循环

do..while循环:
                1、do..while循环的语法结构:
                                do{
                                            循环体;
                                }while(布尔表达式);

                2、do..while循环的执行原理:与while循环相似。

                3、do..while循环的执行次数:
                                do..while循环的循环体代码片段的执行次数是:1~N次[至少一次]。

                4、使用do..while循环的注意事项:
                                do..while循环语句最终有一个分号不能丢了。

举例代码:

public class DoWhileTest01
{
	public static void main(String[] args){

		int i =10;
		do{
			System.out.println("i的值为:"+i); //10,do..while循环至少执行一次
		}while(i>50);

		System.out.println("**********************************");

		while(i>50){
			System.out.println("i值为:"+i);  //不满足条件,不会执行
		}

		System.out.println("**********************************");

		int z = 10;
		do{
			System.out.print("--->"+z);      //10,9,8,7,6,5,4,3,2,1
			z--;
		}while(z>0);
	
	}
}

6、break语句

java控制语句中的break语句:
       1、break:关键字,”中断/折断“。
       2、break;--->可以成为一个单独完整的java语句。
       3、break语句使用在switch语句中用来终止switch的语句的执行。
       4、break语句同样可以使用在循环语句当中,用来终止循环的执行。
       5、break用来终止哪个循环?
       6、break使用在for\while\do..while循环语句中用来跳出循环,终止循环的执行。
       8、默认情况下,break终止的是内层for循环,即离他最近的循环语句。
       9、也可以中断指定的某层循环,需要对不同循环起名字。

举例代码:

public class BreakTest01
{
	public static void main(String[] args){
		for (int i=1; i<10; i++)
		{
			if (i > 5)
			{
				break;
			}
			System.out.print(i);    //1, 2, 3, 4, 5
		}

		System.out.println("****************两层循环*******************");

		for (int j = 1; j<5; j++ )
		{
				for (int i=1; i<10; i++)
				{
						if (i > 5)
						{
							break;
						}
				System.out.print(i);    //1, 2, 3, 4, 5; 1, 2, 3, 4, 5; ......
				}
		}

		System.out.println("****************带名字的两层循环*******************");
		
		//给for循环起名字for1,for2
		for1:for (int j = 1; j< 8;j++ )
		{
			for2: for (int i = 1;i<10 ;i++ )
			{
				if (i == 5)
				{
					break for1;    //如果i=5则外层循环都终止:
				}
				System.out.print(i);   //1,2,3,4,5
			}
		}
		//上述java语句使用较少	
	}
}

7、continue语句

break、continue和return的区别:

break:跳出当前层循环;

continue:跳过本次循环,进入下一次循环;

return:跳出当前方法的循环;

continue语句:
        1、continue:继续/下一个
        2、continue也是循环语句中用来控制循环的执行
        3、break和continue的区别:
                 *break:表示循环终止;
                 *continue:表示直接从---->更新表达式----->开始执行;
        4、continue也有以下语法:
                 *continue  循环名称;

举例代码:

public class ContinueTest01
{
	public static void main(String[] args){
		 for (int i = 1;i<10 ;i++ )
		{
			    if (i ==5)
			    {
				     break;
			    }
			   System.out.println(i);	
		}
		System.out.println("Hello WORLD");

		System.out.println("******************上break,下continue**********");
		for (int i = 1;i<10 ;i++ )
		{
			    if (i ==5)
			    {
				     continue; //只要这个语句执行,当前本次循环停止,直接进入下一次循环继续执行
			    }
			   System.out.println(i);	
		}
		System.out.println("Hello WORLD");
	}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值