各类循环

顺序结构

  • 按照顺序一句一句执行(如无特殊说明),是最简单的算法结构

if选择结构

1.if单选择结

if(布尔表达式){

//如果表达式为true执行{}里的内容

}

import java.util.Scanner;
//if单选结构
public class Demo01 {
       public static void main(String[] args) {
           Scanner s=new Scanner(System.in);
           System.out.println("请输入内容");
           String str=s.nextLine();
           //equals判断字符串是否相等
           if (str.equals("Hello")){
               System.out.println(str);
          }
           System.out.println("End");
           s.close();
          }
      }

2.if双选结构

if(布尔值表达式){

//如果表达式为true执行{}里的内容

}else{//布尔表达式值为false}

import java.util.Scanner;

public class Demo02 {
   public static void main(String[] args){
       System.out.println("请输入成绩:");
       Scanner s=new Scanner(System.in);
       //双选择结构
       int a=s.nextInt();
       if (a>=60){
           System.out.println("及格");
      }else{
       System.out.println("不及格");
      }
       s.close();
  }
}

if多选择结构

if(布尔值表达式1){

//如果表达式为true执行{}里的内容

}else if(布尔值表达式2){

//2式布尔值为true

}else if(布尔值表达式3){/

/3式布尔值为true

}else{//布尔表达式值为false}

import java.util.Scanner;

public class Demo04 {
   public static void main(String[] args) {
       System.out.println("请输入成绩:");
       Scanner s=new Scanner(System.in);
       /*
       1.一个if里至多只有一个else
       2.if中可以有若干个else if语句必选在else之前
       3.一旦其中一个else if语句检测为真,其他的else if以及else语句都将跳过执行
        */


       double a=s.nextDouble();
       if (a>=90&&a<=100){
           System.out.println("A");
      }else if (a>=80&&a<90){
           System.out.println("B");
      } else if (a>=70&&a<80){
           System.out.println("C");
      }
       else if (a>=60&&a<70){
           System.out.println("D");
      }else if (a>=0&&a<60){
           System.out.println("E");
      }else{
           System.out.println("成绩不合法");
      }
       s.close();
  }
}

 

if嵌套语句

if(布尔值表达式){

//如果表达式为true执行{}里的内容

if(布尔值表达式2){

//如果布尔表达式2为true执行代码

}

}

import java.util.Scanner;

public class Demo05 {
   public static void main(String[] args) {
       //嵌套的if结构
       Scanner s=new Scanner(System.in);
       System.out.println("输入成绩");
       if (s.hasNextDouble()){
          double a=s.nextDouble();
           if (a<=100&&a>=0){
               if (a>=90){
                   System.out.println("A");
              }
               if (a<90&&a>=80){
                   System.out.println("B");
              }
               if (a<80&&a>=70){
                   System.out.println("C");
              }
               if (a<70&&a>=60){
                   System.out.println("D");
              }
               if (a<60){
                   System.out.println("不及格");
              }
          }else{
               System.out.println("输入错误");
          }
      }
       s.close();
  }
}

 

switch选择结构

switch(expression){

case value:

//语句

break;//可选 没有break会穿透,直接输出下面的内容

case value:

//语句

break;//可选

default://可选

//语句

}

public class SwitchDemo01 {
   public static void main(String[] args) {
       char grate='E';
       switch (grate){
           case 'A':
               System.out.println("优秀");
               break;
           case 'B':
               System.out.println("良好");
               break;
           case 'C':
               System.out.println("合格");
               break;
           case 'D':
               System.out.println("还有救");
               break;
           case 'E':
               System.out.println("你无了");
               break;
           default:
               System.out.println("未知等级");
      }//jdk7之后支持字符串 字符的本质还是数字
  }//学习反编译   java---class(字节码文件)---反编译(idea)
}

 

 

while循环

while(布尔表达式){

//循环内容

}

  • 只要布尔值为真,就会一直循环

  • 我们大多数时候是让循环停下来的,我们需要一个表达式来结束循环

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

  • 循环条件一直为真就会造成死循环,会影响程序性能或者造成程序卡死崩溃

public class WhileDemo01 {
   public static void main(String[] args) {
       //输出1~100
       int i=1;
       while(i<=100){
           System.out.println(i);
           i++;
      }
  }
}

 

public class WhileDemo02 {
   public static void main(String[] args) {
       //从1+2+3+....+100
       int i=1;
       int sum=0;
       while(i<=100){
           sum=sum+i;
           i++;
      }
       System.out.println("结果为"+sum);//sum是5050结果正确
  }
}

 

 

do while循环

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

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

do{

//代码语句

}while(布尔表达式)

  • 区别:

    1. while先判断后执行。do while先执行后判断

    2. do.... while保证循环体是最少执行一次的 这是它们的主要差别

package com.kang.struct;

public class DoWhile01 {
   public static void main(String[] args) {
       //1+2+3+...+100
       int a=1;
       int sum=0;
       do {
           sum=sum+a;
           a++;

      }while (a<=100);

       System.out.println(sum);

  }
}

 

 

for循环

for(初始值;布尔表达式;更新){

//代码语句

}

  • 是支持迭代的一钟通用结构,是最有效,最灵活的循环结构

  • 执行次数是循环前就确定的

  1. 练习1:计算0到100间的奇数偶数和

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

  3. 练习3:打印99乘法表

public class ForDemo01 {
   public static void main(String[] args) {
       //1-100奇数与偶数和
       int jsum=0;
       int osum=0;
       for (int i=1;i<=100;i++){
           if(i%2==1){
               jsum=jsum+i;
          }else{
               osum=osum+i;
          }
      }
       System.out.println("奇数和"+jsum);
       System.out.println("偶数和"+osum);
  }
}

 

public class ForDemo02 {
   public static void main(String[] args) {
       //用while或for循环输出1-1000间能被5整除的数,并且每行输出三个
       for (int i = 1; i <= 1000; i++) {
           if (i % 5 == 0) {
               System.out.print(i+"\t");//\t是空格
               if (i % 3 == 0) {
                   System.out.print("\n");//\t是换行
              }//注意print与println的区别,print直接输出不带换行与空格,println带换行
          }
      }
  }
}

 

package com.kang.struct;

public class ForDemo03 {
   public static void main(String[] args) {
       //输出乘法口诀表
       for (int i=1;i<10;i++){
           for (int j=1;j<10;j++){
               if (j<i){
                   System.out.print(j+"*"+i+"="+(j*i)+"\t");
              }else{
                   System.out.print(j+"*"+i+"="+(j*i)+"\n");
                   break;//此处break跳出
              }
          }
      }
  }
}

 

posted @ 2021-02-28 11:05  kang_dg  阅读(70)  评论(0)    收藏  举报