Java教程

java循环控制 if switch while for

本文主要是介绍java循环控制 if switch while for,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java循环控制

======================================

------------------------------------------------------------------

if

单分支:有不执行情况

if(布尔型表达式){

Java语句;(布尔条件为真,执行,为假不执行)

}

------

双分支:肯定有一个分支执行

if(布尔型表达式){

为真执行的Java语句;

}else{

为假执行的Java语句;      

}

------

多分支:一个分支执行,整个流程结束,如果最后以else结尾就一定有一个分支执行,如果以

else if()...结尾,就有不执行情况

if(布尔型表达式){

Java语句;

}else if(布尔型表达式){

Java语句;

}else if()...

---------

public static void main(String[] args) {

              boolean isSuccess = false;

              if (isSuccess) {

                     System.out.println("登陆成功");

              }

              if (isSuccess) {

                     System.out.println("登陆成功");

              }else{

                     System.out.println("登陆失败1");

              }

             

              // 如果分支下只有一条java语句,大括号可以省略

              if (isSuccess)

                     System.out.println("登陆成功");

              else

                     System.out.println("登陆失败2");

       }

----------

public static void main(String[] args) {

              int a = 24;

              int b = 22;

              // a>b : 打印1

              // a<b : 打印-1

              // a==b :打印0

              if (a > b) {

                     System.out.println(1);

              } else if (a < b) {

                     System.out.println(-1);

              } else if (a == b) {

                     System.out.println(0);

              }

             

              // 多分支,和多个单分支 有区别,尽管结果一样,效率也有区别

              // 单分支,相互不影响,第一个if执行,第二个if也会进行判断

              // 多分支,第一个if执行,整个结束(任何一个分支执行,整个结构结束)

       }

---------    

package javaSE_day08_Text;

import java.util.Scanner;

public class If {

       public static void main(String[] args) {

              Scanner scanner = new Scanner(System.in);//用的scanner提示输入并获取用户输入

              System.out.println("请输入 : \n");

              int userInput1 = scanner.nextInt();

              int age =userInput1;

             

if(1<=age&&age<=5){

       System.out.println("幼儿");

       }else if(6<=age&&age<=18){

              System.out.println("少年");

       }else if(19<=age&&age<=35){

              System.out.println("青年");

       }else if(36<=age&&age<=55){

              System.out.println("中年");

       }else if(56<=age&&age<=100){

              System.out.println("老年");

       }else{

              System.out.println("请输入1-100内的整数");

       }//判断属于哪个年龄段

      

          }

       }

-------

if 也可以嵌套使用一个条件里还有下级条件的可以再写if啦else if 啥的.

======================================

------------------------------------------------------------------

switch

switch(表达式){   //表达式取值为byte,short,int,char,jdk以后可以是枚举,jdk7以后可以是String

case类型值1:      //case 后面跟的是要和表达式比较的值

           执行语句1;

                 bresk;//可以有可以没有表示中断结束用来结束switch语句

case类型值2:

           执行语句2;

           break;

case类型值3:

           执行语句3;

           break;      

       ...

        default://可以有,可以没有,相当于 else,没有匹配项的时候,执行default处的语句

           执行语句n+1;        

}

//如果一个case语句体没有break 会发生case穿透现象(本该结束但没有break只能继续往下走结果就是输出一个

本语句体的打印内容还输出了到有break或者其他程序结束命令前的打印语句,同时也就是说相同的只保留case x:

最后一个case写完整就可以简写一个变量对应好几个值的代码)

// switch实现,switch 只能比较相等,而if还可以做范围判断 > < 这些

              // 所以 switch能搞定的,if也能搞定,但是if能搞定的,switch不一定可以搞定

              // 但是 如果都是要判断相等,使用switch要简单一些

---------------       

              switch (c) {    //首先计算表达式的值

              case 'A':

                     System.out.println("优秀");//依次和case后面的值比较有对应的执行相应语句遇到break结束

                     break;

              case 'B':

                     System.out.println("良好");

                     break;

              case 'C':

              case 'D':

                     System.out.println("一般");//case穿透

                     break;

                    

              default:                     //所有case都不匹配执行此语句体,程序结束

                     System.out.println("差");

                     break;

              }

======================================

-------------------------------------------------------------------

for

1 三要素:初始值,终止条件,步长(都可以不写如for(;;){ }死循环除了循环没有意义)

for (int i=0;i<10;i++){

System.out.println(i);

}

//如果想在循环之外再用到i可以初始化到外边

public static void main(String[]args){

      

       int i = 0;

       for (;i<3;i++){

       System.out.println("="+i);

       }

       System.out.println(i);

}

结果是竖着的=0 =1 =2 3

-----------

嵌套式

表示列表

由于这种输出外层循环是行数内层循环是列

public static void main(String[] args) {

              for (int i = 0; i < 5; i++) {

                     for (int j = 0; j < 5; j++) {

                            // print 不换行 println 会换行 xxxxxxxx(五列)

                            System.out.print(j+"  ");//xxxxxxxxx

                     }                              xxxxxxxxx(五行)

                     // 换行

                     System.out.println();

              }

       }

       -------------

      

       public static void main(String[] args) {

              // 9*9表格

              // for (int i = 1; i <= 9; i++) {

              // for (int j = 1; j <=9; j++) {

              // System.out.print(0+"  ");

              // }

              // System.out.println();//9x9的0

              // }

              // 三角形

              // for (int i = 1; i <= 9; i++) {

              // for (int j = 1; j <= i; j++) {

              // System.out.print(0 + "  ");

              // }

              // System.out.println();

              // }

             

              // 数据内容

              for (int i = 1; i <= 9; i++) {//每行

                     for (int j = 1; j <= i; j++) {//每列

                            System.out.print(j+"x"+i+"="+(j*i) + "  ");//显示成乘法口诀

                     }

                     System.out.println();

              }

       }

-----------------

大马中马小马驮砖问题

有100匹马,分别是大马,中马,和小马 ,有100块砖头   

大马 一次能驮3块砖

中马 一次能驮2块砖

三匹小马 一次能驮 1块砖

  刚好一次驮完,问 有多少大马,多少中马,多少小马(每种马的个数不能为0,并且不能有闲着的马)

  注意 : 小马个数 是3的倍数,类型可以使用double

package javaSE_day08_Text;

public class Horse {

       public static void main(String[]args){

  for(int x=1;x<=100;x++){

         for(int y=1;y<=100;y++){

               

                for(int z=1;z<=100;z++){//小马也可以z=3开始三个一增z=z+3

                       if(3*x+2*y+z/3==100&&x+y+z==100&&(z%3==0)){//z%3==0也可以不写但是要改z的数据类型为double

                              System.out.println("大马="+x+"中马="+y+"小马="+z);

                       }

                      

                }

         }

        

  }

 

}

}

======================================

------------------------------------------------------------------

while

真假循环,当某个条件为真的时候执行

while(布尔型表达式){

循环体;

}

              int a = 2;

              while (a > 2) {

                     System.out.println("=-==");

              }//不执行

布尔值表达式为true就执行,一直到false终止

迭代器适合用while

======================================

------------------------------------------------------------------

do...while

先执行一次再判断,保证代码必须执行一次

do{

java 语句;

}while(表达式);

如果条件都是成立的情况下,while,doWhile,for 的执行次数是没有区别的

但是 条件一开始就为false的话,while和for就一次也不执行,但是doWhile 就会执行一次

       public static void main(String[] args) {

              // while 执行次数 : 0~N次,一开始就不符合条件,导致执行0次, 死循环 执行N次

              int a = 2;

              while (a > 2) {

                     System.out.println("=-==");

              }

              // for 执行次数 : 0~N次,一开始就不符合条件,导致执行0次, 死循环 执行N次

              for (int i = 10; i < 10; i++) {

                     System.out.println(i);

              }

             

              do {

                     // 虽然不符合条件,但是也会执行一次

                     System.out.println("xxxxx");

              } while (a > 2);

       }

======================================

------------------------------------------------------------------

跳转语句

break

1 用于switch语句中,结束分支,避免case穿透

            2 break也可以用于循环中,终止循环

                   比如在一堆数据中,循环查找某个数据的时候,当找到之后,就没有必要继续循环查找了,可以使用break终止循环

                    break 默认终止 距离最近的循环

                     当break发生在嵌套循环中的时候,默认终止近层循环

                            public static void main(String[] args) {

              int count = 0;

              for (int i = 0; i < 10; i++) {

                     count++;

                    

                     //System.out.println(i);

                     // 在0~9之间 找5,找到之后 就终止

                     if (i == 5) {

                           

                            System.out.println("找到了"+" ^ ^"+"执行了"+count+"次");

                            break;(有break就结束了,没有就进行到终止条件)

                           

                     }

              if (i == 9) {

                           

                            System.out.println("结束了"+" ^ ^"+"执行了"+count+"次");

                           

                           

                     }

              }

       }

      

      

       -------------

       public static void main(String[] args) {

              // for (int i = 0; i < 5; i++) {

              // for (int j = 0; j < 5; j++) {

              // System.out.print(j + "   ");

              // if (i == 3) {

              // // 只能终止近层循环

              // break;

              // }

              // }

              // System.out.println();

              // }

             

              outerFor:for (int i = 0; i < 5; i++) {

                     for (int j = 0; j < 5; j++) {

                            System.out.print(j + "   ");

                            if (j == 3) {

                                   // 终止指定循环

                                   break outerFor;

                            }

                     }

                     System.out.println();

              }

       }

--------------------------

contiue  

continue : 跳过当前次循环,继续下一次

public static void main(String[] args) {

              for (int i = 0; i < 5; i++) {

                     if (i == 3) {

                            // 跳过当前次,直接执行表达式3,认为循环体已经执行完成

                            continue;

                     }

                     System.out.println(i);

              }

       }

      

这篇关于java循环控制 if switch while for的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!