Java-Day03

Day-03

1.顺序结构

  • java的基本结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行。

  • 顺序结构是最简单的算法结构。

  • 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的基本算法结构。

2.if语句

单选择结构

 package com.Gua.Day03;
 ​
 import java.util.Scanner;
 ​
 public class IfDemo01 {
     public static void main(String[] args) {
         Scanner scanner = new Scanner(System.in);
         System.out.println("请输入字符:");
         String s = scanner.nextLine();
  //equals:判断字符串是否相等
         if (s.equals("Hello")){
             System.out.println("Hello");
        }
             System.out.println("end");
         scanner.close();
    }
 }

双选择结构

 package com.Gua.Day03;
 ​
 import java.util.Scanner;
 ​
 public class IfDemo02 {
     public static void main(String[] args) {
         Scanner scanner = new Scanner(System.in);
         System.out.println("请输入成绩:");
         int x = scanner.nextInt();
         if (x >= 60){
             System.out.println("成绩合格");
        }else{
             System.out.println("成绩不合格");
        }
 ​
         scanner.close();
    }
 }

多选择结构

 package com.Gua.Day03;
 ​
 import java.util.Scanner;
 ​
 public class IfDemo02 {
     public static void main(String[] args) {
         Scanner scanner = new Scanner(System.in);
         System.out.println("请输入分数:");
 ​
         int score = scanner.nextInt();
         if (score >= 60 && score<90){
             System.out.println("您的成绩及格");
        }else if(score >= 90 && score <= 100){
             System.out.println("您的成绩非常好");
        }else if(score < 60 && score > 0){
             System.out.println("您的成绩不及格");
        }else
             System.out.println("非法输入");
 ​
         scanner.close();
    }
 }
  • if语句至多有1个else语句,else语句在所有的else if 语句之后。

  • if语句可以有若干个else if语句,它们必须在else语句之前。

  • 一旦其中一个else if 语句检测为true,其他的else if 以及 else 语句都将跳过执行。

嵌套if语句

 
 public static void main(String[] args) {
 /*
  * 学校举行运动会,百米赛跑跑入10 秒内的学生有资格进决赛,根据性别分别进入男子组和女子组
  */
 
 //创建Scanner类对象
 Scanner sc = new Scanner(System.in);
 
 System.out.println("请输入你的百米赛跑成绩(秒):");
 double runScore =sc.nextDouble();
 
 //获取百米赛跑成绩之后,判断其能不能进入决赛
 if(runScore<10&&runScore>0){
 System.out.println("恭喜你进入决赛");
 //进入决赛之后,根据性别进行分组
 //获取性别
 System.out.println("请输入您的性别:");
 String gender =sc.next();
 //判断性别,分组
 if(gender.equals("男")){
 System.out.println("进入男子决赛组");
 }else if(gender.equals("女")){
 System.out.println("进入女子决赛组");
 }else{
 System.out.println("暂时还没有针对你的性别开展决赛,敬请期待");
 }
 
 }else if(runScore>=10){
 System.out.println("很遗憾,不能进入决赛");
 }else{
 System.out.println("输入错误");
 }
 
 System.out.println("程序执行完毕");
 }
}

3.switch多选择结构

 package com.Gua.Day03;
 ​
 public class SwitchDemo01 {
     public static void main(String[] args) {
         String name = "冬瓜";
         //JDK7的特性,表达式结果可以是字符串!
         //字符的本质还是数字
 ​
         //反编译 java -- class(字节码文件) ---反编译
         switch(name){
             case "冬瓜":
                 System.out.println("冬瓜");
                 break;
             case "小黄":
                 System.out.println("小黄");
                 break;
             default:
                 System.out.println("输的是个啥");
        }
 ​
    }
 }

反编译

4.while循环

  • 只要布尔表达式为true,循环就会一直执行下去

  • 大多数情况会让循环停止下来,我们需要一个让表达式失效的方式来结束循环

  • 少部分情况需要循环一直执行,比如服务器的请求响应监听

  • 循环条件一直为ture会造成无限循环【死循环】,我们正常的业务编程中应该 尽量避免死循环,会影响程序性能或者造成程序卡死崩溃

 
package com.Gua.Day03;
 ​
 public class WhileDemo01 {
     public static void main(String[] args) {
         int i = 0;
         while(i<100){
             i++;
             System.out.println(i);
        }
    }
 }
 package com.Gua.Day03;
 ​
 public class WhileDemo02 {
     public static void main(String[] args) {
         int i = 0;
         int sum = 0;
         while(i <= 100){
             sum = sum + i;
             i++;
        }
         System.out.println(sum);
    }
 }

5.do while循环

  • 对于while而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也要执行至少一次

  • do...while循环和while循环相似,不同的是,do...while循环至少会执行一次

  • while和do...while的区别:

    • while先判断后执行,do..while是先执行后判断

    • do...while总是保证循环体会被执行至少一次,这是他们的主要差别

 package com.Gua.Day03;
 ​
 public class DoWhileDemo01 {
     public static void main(String[] args) {
         int i = 0;
         int sum = 0;
 ​
         do {
             sum = sum + i;
             i++;
        }while (i <= 100);
         System.out.println(sum);
    }
 }

6.For循环

  • for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构

  • for循环执行的次数在执行之前就能确定

 package com.Gua.Day03;
 ​
 public class ForDemo01 {
     public static void main(String[] args) {
         int a = 1;//初始化条件
 ​
         while (a <= 100) {//条件判断、
             System.out.println(a);
             a += 2;//迭代
        }
         System.out.println("while循环结束");
         
 ​
         for (int i =1; i <= 100; i++){
         System.out.println(i);
        }
         System.out.println("for循环结束");
    }
 ​
 }
 package com.Gua.Day03;
 ​
 public class ForDemo02 {
     //练习:计算0-100之间的奇数和偶数的和
     public static void main(String[] args) {
         int oddSum = 0;
         int evenSum = 0;
 ​
         for (int i = 0; i < 100; i++) {
             if (i %2!= 0){//奇数
                 oddSum += i; //oddSum = oddSum + i;
            }else {//偶数
                 evenSum += i;
            }
        }
         System.out.println("奇数的和为:"+ oddSum);
         System.out.println("偶数的和为:"+ evenSum);
    }
 }

练习2:用while或for循环输出1-1000之间的能被5整除的数,并且每行输出3个

 
package com.Gua.Day03;
 ​
 public class ForDemo03 {
     public static void main(String[] args) {
         //练习2:用while或for循环输出1-1000之间的能被5整除的数,并且每行输出3个
         for ( int i = 0; i <= 1000; i++){
             if (i % 5 == 0){
                 System.out.print(i+"\t");
            }
             if(i%(5*3) == 0 ){
                 System.out.println();
                 //System.out.println("\n");
            }
        }
         
         //println 输出完会换行
         //print 输出完不会换行
    }
 }

练习3:打印九九乘法表🌟🌟🌟

 package com.Gua.Day03;
 ​
 public class ForDemo99 {
     public static void main(String[] args) {
         for (int j = 1; j <= 9; j++) {
             for (int i = 1; i <= j; i++) {
                 System.out.print(j+"*"+i+"="+(j*i) + "\t");
            }
             System.out.println();
        }
    }
 }

注意:

//先打印第一列, //把固定的1再用一个循环包起来 //去掉重复项,i <= j //调整样式

用 do...while 循环写九九乘法表

 package com.Gua.Day03;
 ​
 public class DoWhileDemo99 {
         public static void main(String[] args){
       /*
          do{}while循环实现9*9乘法口诀表
       */
             int i=9;
             do{
                 int j=1;
                 do{
                     System.out.print(i+"*"+j+"="+(i*j)+" "+"\t");
                   //   "\t"这是JAVA语言默认的制表符号,使用此符号,打印出的乘法表格较为美观
                     j++;
                }while(j<=i);//大于i之后跳出循环
 ​
                 System.out.println();
                 i--;
            }while(i>=1);//小于1之后跳出循环
        }
    }

For 增强循环,(偷懒工具)for( : );//遍历数组

 package com.Gua.Day03;
 ​
 public class ForDemo05 {
     public static void main(String[] args) {
         int[] numbers = {10,20,30,40,50};//定义了一个数组
 ​
         for ( int i = 0; i < 5; i ++){
             System.out.println(numbers[i]);
        }
         System.out.println("===========");
         //遍历数组的元素
         for (int x : numbers){
             System.out.println(x);
        }
    }
 }

7.break continue

  • break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在switch语句中使用)

  • continue语句在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

  • 关于goto关键字:

    • goto关键字很早就在程序设计语言中出现,尽管goto仍是java的一个保留字,但是并未在语言中得到正式使用;Java没有goto。然而,在breal和continue这两个关键字的身上,我们仍能看出一些goto的影子--带标签的break和continue。

    • “标签”是指后面跟一个冒号的标识符,例如:label:

    • 对Java来说唯一用到标签的地方是在循环语句之前。而在循环之前设置标签的唯一理由是:我们希望在其中嵌套另一个循环,由于break和continue关键字通常只中断当前循环,但若随同标签使用,它们就会中断到存在标签的地方。

break语句:

 package com.Gua.Day03;
 ​
 public class BreakDemo {
     public static void main(String[] args) {
         int i = 0;
         while (i < 100) {
             i++;
             System.out.print(i+ "\t");
             if (i == 30) {
                 break;
            }
        }
    }
 }
 

continue语句:

 package com.Gua.Day03;
 ​
 public class ContinueDemo {
     public static void main(String[] args) {
         int i =0;
         while (i < 100) {
             i ++;
             if (i % 10 == 0) {
                 System.out.println();
                 continue;
            }
             System.out.print(i+"\t");
        }
    }
 }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值