为了账号安全,请及时绑定邮箱和手机立即绑定

顺序结构,选择结构(if,switch)循环结构(for,while,do while),死循环

标签:
Java

程序的结构:
顺序结构,选择结构,循环结构
顺序结构:
图片描述
选择结构: if:

package com.newedu.jb.day02;
import java.util.Scanner;
/**
 * 选择结构
 * if
 *
 * 三种格式:
 *
 * @author 小可爱
 *
 */
public class ChooseDemo {
    public static void main(String[] args) {
        /**
         * 第一种if格式
         * if(关系表达式){
            //code block,可以是单行语句,也可以是多行语句
           }
         */
        int a = 10;
        int b = 20;
        if(a>b){//关系表达式的值为true,才执行下面的代码块
            System.out.println("最大值是:"+a);
        }

        /**
         * 第二种if else格式
         *
         * if(关系表达式){
            //code block,可以是单行语句,也可以是多行语句
        }else{
            //code block,可以是单行语句,也可以是多行语句
        }
         */
        int x = 1;
        int y = 2;
        if(x>y){
            //code block,可以是单行语句,也可以是多行语句
            System.out.println("最大值:"+x);
        }else{
            //code block,可以是单行语句,也可以是多行语句
            System.out.println("最大值:"+y);
        }

        /**
         * 第三种if else if ... esle格式
         *
         *  if(关系表达式1){
            //code block,可以是单行语句,也可以是多行语句
        }else if( 关系表达式2){
            //code block,可以是单行语句,也可以是多行语句
        }
        else if( 关系表达式2){
            //code block,可以是单行语句,也可以是多行语句
        }
        ...
        else{
            //code block,可以是单行语句,也可以是多行语句
        }
         *
         */

        Scanner sc = new Scanner(System.in);
        System.out.println("输入分数:");
        int score = sc.nextInt();
        if(score>90&& score <=100){
            //code block,可以是单行语句,也可以是多行语句
            System.out.println("优秀");
        }else if( score>80&& score <=90){
            //code block,可以是单行语句,也可以是多行语句
            System.out.println("良好");
        }
        else if( score>70&& score <=80){
            //code block,可以是单行语句,也可以是多行语句
            System.out.println("中等");
        }
        else{
            //code block,可以是单行语句,也可以是多行语句
            System.out.println("继续努力吧,少年");
        }

        sc.close();
    }
}

switch:

package com.newedu.jb.day02;
import java.util.Scanner;
/**
 * Switch 选择结构
 *
 * 用switch语句实现键盘录入月份,输出对应的季节
 * @author 小可爱
 *
 */
public class ChooseDemo2 {
    public static void main(String[] args) {
        //ctrl+shift +o :自动导入确实的包
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入月份");
        int month = sc.nextInt();

        switch(month){
        default:
            //code blcok
            System.out.println("输入有误!");
            break;
        case 12:
            //code block
//          System.out.println("大约是冬季");
//          break;
        case 1:
            //code block
//          System.out.println("大约是冬季");
//          break;
        case 2:
            //code block
            System.out.println("大约是冬季");
            break;

        case 3:
            //code block
            System.out.println("大约是春季");
            break;
        case 4:
            //code block
            System.out.println("大约是春季");
            break;
        case 5:
            //code block
            System.out.println("大约是春季");
            break;
        case 6:
            //code block
            System.out.println("大约是夏季");
            break;
        case 7:
            //code block
            System.out.println("大约是夏季");
            break;
        case 8:
            //code block
            System.out.println("大约是夏季");
            break;
        case 9:
            //code block
            System.out.println("大约是秋季");
            break;
        case 10:
            //code block
            System.out.println("大约是秋季");
            break;
        case 11:
            //code block
            System.out.println("大约是秋季");
            break;

        }

        sc.close();
    }
}

循环结构
for
格式
图片描述

for循环练习
package com.newedu.jb.day03;
/**
 * 演示for循环:
 *
 * for格式:
 * for(初始化语句;判断条件语句;控制条件语句){
 *      循环体语句(code block)可以是单行,也可以是多行
 * }
 *
 * 执行顺序:
 *   A:执行初始化语句
 *   B:判断条件语句
 *       1:如果执行结果为false,结束循环
 *       2:如果执行结果为true,继续执行C
 *   C:执行循环体语句
 *   D:控制条件语句
 *   E:回到B重复执行。
 * @author 小可爱
 *
 */
public class ForDemo {
    public static void main(String[] args) {

        //请在控制台输出数据1-10
        for(int i=1;i<=10;i++){
            System.out.print(i+"\t");
        }
        System.out.println();
        System.out.println("=========");
        //请在控制台输出数据10-1
        for(int i=10;i>=1;i--){
            System.out.print(i+"\t");
        }
        System.out.println();
        System.out.println("=========");
        int sum  =0;
        //求出1-10之间数据之和
        for(int i=1;i<=10;i++){
            sum +=i;
        }

        System.out.println("1-10之间数据之和:"+sum);

        //求出1-100之间偶数和
        /**
         * 分析一下
         */
        sum = 0;
        for(int i=2;i<=100;i=i+2){
            //1,2,3,4,5,6,7,8,9,10
            sum +=i;
        }
        System.out.println("1-100之间偶数和:"+sum);

        //求出1-100之间奇数和
        sum = 0;
        for(int i=1;i<=100;i=i+2){
            //1,2,3,4,5,6,7,8,9,10
            sum +=i;
        }
        System.out.println("1-100之间奇数和:"+sum);

        int sum1=0;
        int sum2=0;
        for(int i=1;i<=100;i++){
            if(i%2==0){//偶数,2,4,6,8....
                sum1 +=i;
            }else{
                sum2+=i;//奇数,1,3,5,7....
            }
        }

        //求5的阶乘5*4*3*2*1
        sum =1;
        for(int i=5;i>=1;i--){
            sum *=i;
        }
        System.out.println("5的阶乘:"+sum);
    }
}

package com.newedu.jb.day03;
/**
 * for循环练习题
 * 请在控制台输出满足如下条件的五位数10000 99999   
 * 个位等于万位   12345  first = 12345%10 sencond = 1234%10
 * 十位等于千位
 * 个位+十位+千位+万位=百位
 *
 * 分析:
 *    num = 12345
 *    first = num%10
 *    num /=10; //1234
 *    second = num%10
 *    num /=10;
 *    ....
 *   
 *    结束条件
 *    num = 0;就结束
 * @author 小可爱
 *
 */
public class ForDemo1 {
    public static void main(String[] args) {
//      String s = "12345";
//      
//      char f1 = s.charAt(0);
//      char f5 = s.charAt(4);
//      f1.equals(f5);

        String str1 = "str";
        String str2 = "str";
        str1.equals(str2);
//      int num = 12345;
//      int first = num%10;
//      num /=10;
//      int second = num%10;
//      num /=10;
//      int third = num%10;
//      num /=10;
//      int fourth = num%10;
//      num/=10;
//      int fifth = num%10;
//      
//      System.out.println("first:"+first);
//      System.out.println("second:"+second);
//      System.out.println("third:"+third);
//      System.out.println("fourth:"+fourth);
//      System.out.println("fifth:"+fifth);
        for(int i=10000;i<=99999;i++){
            int num = i;
            int first = num%10;
            num /=10;
            int second = num%10;
            num /=10;
            int third = num%10;
            num /=10;
            int fourth = num%10;
            num/=10;
            int fifth = num%10;
            //ctrl+d :删除当前光标所在行
            if(first == fifth &&
                second == fourth &&
                first+second+fourth+fifth == third  ){
                System.out.println(i);
            }
        }
    }
}

while
格式
图片描述
while循环练习:

package com.newedu.jb.day03;
/**
 * while循环
 *
 * 格式:
 * 基本格式
   while(判断条件语句) {
         循环体语句;
   }
   扩展格式
   初始化语句;
   while(判断条件语句) {
         循环体语句;
         控制条件语句;
    }
 * @author 小可爱
 *
 */
public class WhileDemo {
    public static void main(String[] args) {
        //输出1-10的数到控制台
//      int i=1;
//      while(i<=10){
//          System.out.print(i+"\t");
//          i++;
//      }
        int j=10000;
        while(j<=99999){
            int num = j;
            int first = num%10;
            num /=10;
            int second = num%10;
            num /=10;
            int third = num%10;
            num /=10;
            int fourth = num%10;
            num /=10;
            int fifth = num%10;
            //ctrl+d :删除当前光标所在行
            if(first == fifth &&
                second == fourth &&
                first+second+fourth+fifth == third  ){
                System.out.println(j);
            }
            j++;
        }
    }
}

for 与 while的区别
图片描述
do while
图片描述
do while练习:

package com.newedu.jb.day03;
/**
 * do while 循环
 *
 * @author 小可爱
 *
 */
public class DoWhileDemo {
    public static void main(String[] args) {
        // 输出1-10之间的数到控制台
        int i = 1;
        do {
            System.out.print(i + "\t");
            i++;
        } while (i <= 0);

        while(i<=0){
            System.out.print(i + "\t");
            i++;
        }
    }
}

死循环:
while(true){}
for(;;){}

break,continue,return 关键字
break;//跳出当前循环
continue;//跳出当前循环,继续下一个循环
return;//跳出当前的方法执行,直接返回到调用者
总结:
三种循环语句其实都可以完成一样的功能,也就是说可以等价转换,但还是有小区别的:
do…while循环至少会执行一次循环体。
for循环和while循环只有在条件成立的时候才会去执行循环体
嵌套循环:
练习:

package com.newedu.jb.day03;
/**
 * 循环结构(嵌套循环的练习)
 *
 * @author 小可爱
 *
 */
public class LoopDemo {
    public static void main(String[] args) {
        //请输出一个4行5列的星星(*)图案

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

        /*for(int i=0;i<=4;i++){ // 循环 控制打印一行*
            System.out.print("*");
        }
        System.out.println();
        for(int i=0;i<=4;i++){ // 循环 控制打印一行*
            System.out.print("*");
        }
        System.out.println();
        for(int i=0;i<=4;i++){ // 循环 控制打印一行*
            System.out.print("*");
        }
        System.out.println();
        for(int i=0;i<=4;i++){ // 循环 控制打印一行*
            System.out.print("*");
        }*/

        for(int j=0;j<=3;j++){//外循环 控制打印多少行
            for(int i=0;i<=4;i++){ // 内循环 控制打印一行中列(*)
                System.out.print("*");
            }
            System.out.println();
        }
    }
}
点击查看更多内容
3人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
软件工程师
手记
粉丝
51
获赞与收藏
617

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消