第三章 流程控制

  • Post author:
  • Post category:其他


目录

3.2条件语句

3.2.1  if条件语句

例3.2两种情况都是正确的

例3.2 拨打电话

例3.3使用if…else语句判断变量的值来定输出结果

例3.4在项目中创建类Getifese,在主方法中定义变量,使用if..else if多分支语句通过断x的值决定输出结果。

例3.5判断是否是闰年

例3.6判断是否是闰年,用一条逻辑语句进行判断

switch语句

例3.7使用switch语句判断星期,并打印对应的英文

例3.8创建成绩类,使用Scanner类在控制台输入分数, 图3.12判断星期并打印出脸 例3.publ然后用switch语句判断输入的分数属于哪类成绩。10分、9分属于优,8分属于良,7分、6分属于及格,5分、4分、3分、2分、1分、0分均为不及格。

例3.9 通过switch语句根据字符串str的值,输出不同的提示信息。

3.3循环语句

3.3.1  while循环语句

例3.10在项目中创建类Cycle,在主方法中通过while循环将整数1—100相加

3.2  do…while循环语句

例3.11 在项目中创建类Cycle

3.3  while 与 do…while 比较

例3.12使用do..while循环输出J的值

例3.13使用while循环输出J的值

例3.14 使用for循环完成1—100的相加运算

3.5  foreach语句

例3.15在项目中创建类Repetition,在主方法中定义一维数组,并使用foreach语句遍历

例3.16使用嵌套的for循环输出乘法口诀

3.4跳转语句

例3.17输出1—20的第一个偶数,使用break跳出循环

例3.18在嵌套的循环中使用break,跳出内层循环

例3.19使用带有标签的break跳出外层循环

例3.20输出1—20的偶数使用continue语句跳出循环

3.2条件语句

在Java中,条件语句主要包括if语句和switch语句两种

3.2.1  if条件语句

if条件语句主要用于告诉程序在某个条件成立的情况下执行某段语句,而在另一种情况下执行

另外的语句。

使用if条件语句,可选择是否要执行紧跟在条件之后的那个语句。关键字if之后是作为条件的布尔表达式”,如果该表达式返回的结果为true,则执行其后的语句;若为false,则不执行if条件之后的语句。if条件语句可分为简单的if条件语句、if…else 语句和 if…else if多分支语句。

例3.2两种情况都是正确的

public class IFTest {
    public static void main(String[] args) {
        if (true) // 让判断条件永远为真
            System.out.println("我没有使用大括号");//没有大括号,直接跟在if语句之后if(true) (//让判断条件永远为真
            System.out.println("我使用大括号");//输出语句在大括号之内
    }
 
}

例3.2 拨打电话

import java.util.Scanner;
public class TakePhone {
    public static void main(String[] args) {
    Scanner in= new Scanner(System.in);//创建Scanner对象,用于进行输入
    System.out.println("请输入要拨打的电话号码");
    int phoneNumber =in.nextInt();//创建变量,保存电话号码
    if(phoneNumber!=84972266);//判断此电话号码是否是8497226
    //如果不是8497226好吗,则提示号码不存在
    System.out.println("对不起,您拨打的号码不存在!");
    
    }
 
}


例3.3使用if…else语句判断变量的值来定输出结果

public class Getifelse {
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int math= 95; //声明int型局部变量,并赋给初值95
        int english=56; //声明int型局部变量,并赋给初值56
        if(math >60) {//使用if语句判断math是否大于60
        System.out.println("数学及格了");//条件成立时输出的信息
        }else {
        System.out.println("数学没有及格");//条件不成立输出的信息
        }
    if    (english > 60) {//判断英语成绩是否大于60
        System.out.println("英语及格了");//条件成立输出的信息
    }else {
        System.out.println("英语没有及格");//条件不成立输出的信息
      }
    }
}

例3.4在项目中创建类Getifese,在主方法中定义变量,使用if..else if多分支语句通过断x的值决定输出结果。

public class GetTerm {
    public static void main(String[] args) {
        int x=20; //声明int 型局部变量
        if(x>30) {// 判断变量x是否大于30
            System.out.println("a的值大于30");//条件成立的输出信息
        }else if(x>10) {//判断变量x是否大于10
            System.out.println("a的值大于10,但小于30");//条件成立的输出信息
        }else if(x>0) {//判断变量x是否大于0
            System.out.println("a的值大于0,但小于30");//条件成立的输出信息
        }else {当以上条件都不成立时,执行的语句块
            System.out.println("a的值小于0");//输出信息
        }
    }
 
}

例3.5判断是否是闰年

import java.util.Scanner;
public class JudgeL {
    public static void main(String[] args) {
        int iYear; //创建整型变量,保存输入的年份
        Scanner sc= new Scanner(System.in);// 创建扫描器
        System.out.println("please input number");
        iYear = sc.nextInt();      //控制台输入一个数字
    if    (iYear % 4== 0) {         //如果能被4整除
        if  (iYear % 100 ==0) {    //如果能被100整除
    if    (iYear % 400== 0)         //如果能被400整除
        System.out.println("It is a leap year");//是闰年
        else
            System.out.println("It is not a leap year");// 不是闰年
        }else
        System.out.println("It is a leap year"); //是闰年
    }else
        System.out.println("It is not a leap year"); // 不是闰年
    }
 
}

例3.6判断是否是闰年,用一条逻辑语句进行判断

import java.util.Scanner;
public class Judel2 {
    public static void main(String[] args) {
        int iYear; //创建整型变量,保存输入的年份
        Scanner sc= new Scanner(System.in);// 创建扫描器
        System.out.println("please input number");
        iYear = sc.nextInt();      //控制台输入一个数字
        //
        if (iYear%4==0 &&iYear %100!=0||iYear%400==0)
        System.out.println("It is a leap year"); //是闰年
        else
        System.out.println("It is not a leap year"); // 不是闰年
    }
 
}

switch语句

switch语句中参数必须是整型,字符型,枚举类型和字符串类型,常量值1~n必须是与参数兼容的数据类型.

switch 语句首先计算参数的值,如果参数的值和某个case 后面的常量表达式相同,则执行该 case吾句后的若干个语句,直到遇到 break 语句为止。此时如果该 case 语句中没有 break 语句,将继续执行后面 case 中的若干个语句,直到遇到 break 语句为止。若没有任何一个常量表达式与参数的值相同,则执行 default 后面的语句。

break 的作用是跳出整个 switch 语句。

default 语句是可以不写的,如果它不存在,而且 switch 语句中表达式的值不与任何 case 的常量值相同,switch 则不做任何处理。

例3.7使用switch语句判断星期,并打印对应的英文

public class GetSwitch {
    public static void main(String[] args) {
        int week=2;//定义int型变量week
        switch (week) {
        case 1://定义case语句中常量为1
            System.out.println("Monday");
            break;
        case 2://定义case语句中常量为2
            System.out.println("Tuesday");
            break;
        case 3://定义case语句中常量为3
            System.out.println("Wednesday");
            break;
        case 4://定义case语句中常量为4
            System.out.println("Thursday");
            break;
        case 5://定义case语句中常量为5
            System.out.println("Friday");
            break;
        case 6://定义case语句中常量为6
            System.out.println("Saturday");
            break;
        case 7://定义case语句中常量为7
            System.out.println("Sunday");
            break;
            default:
                System.out.println("Sorry,I don't Know");
     }
    }
}

例3.8创建成绩类,使用Scanner类在控制台输入分数, 图3.12判断星期并打印出脸 例3.publ

然后用switch语句判断输入的分数属于哪类成绩。10分、9分

属于优,8分属于良,7分、6分属于及格,5分、4分、3分、2分、1分、0分均为不及格。

import java.util.Scanner;
public class Grade {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入成绩:");
        int grade=sc.nextInt();
        switch(grade) {
        case 10:
        case 9:System.out.println("成绩为优");break;
        case 8:System.out.println("成绩为良");break;
        case 7:
        case 6:System.out.println("成绩为中");break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:
        case 0:System.out.println("成绩为差");break;
        default:System.out.println("成绩为中");break;
        }
    }
 
}

例3.9 通过switch语句根据字符串str的值,输出不同的提示信息。

public class SwitchInSring {
    public static void main(String[] args) {
    String str="明日科技";
    switch(str) {
    case "明日":
        System.out.println("明日图书网ww.mingribook.com");
        break;
    case "明日科技":
        System.out.println("吉林省明日科技有限公司");
        break;
        default:
        System.out.println("以上条件都不是。");
        }
    }
}

3.3循环语句

循环语句就是在满足一定条件的情况下反复执行某一个操作。在Java中提供了4种常用的循环语句,分别是while语句、do…while 语句、for 语句和 foreach 语句,其中,foreach 语句是 for 语句的特殊简化版本。

3.3.1  while循环语句

While语句的循环方式为利用一个条件来控制是否要继续反复执行这个语句

例3.10在项目中创建类Cycle,在主方法中通过while循环将整数1—100相加

public class GetSum {
    public static void main(String[] args) {//主方法
        int x=1;
        int sum=0;//定义变量用于保存想加后的结果
        while(x<=10) {
            sum=sum+x;//while循环语句
            x++;
        }
        System.out.println("sum="+sum);//将变量sum输出
    }
 
}



3.2  do…while循环语句

do…while 循环语句与 while 循环语句类似,它们之间的区别是 while 语句为先判断条件是否成立再执行循环体,而 do…while 循环语句则先执行一次循环后,再判断条件是否成立。也就是说 do…while 循环语句中“{}”中的程序段至少要被执行一次。

例3.11 在项目中创建类Cycle

public class Cycle {
    public static void main(String[] args) {
        int a=100;           //声明int型变量a并赋初值100
        while(a==60) {        //指定进入循环条件
            System.out.println("ok1");//while语句循环体
            a--;
        }
        int b=100;              //声明int型变量a并赋初值100
        do {
            System.out.println("ok2");//do while语句循环体
            b--;
        }while(b==60);               //指定循环结束条件
    }
 
}

3.3  while 与 do…while 比较

可以通过设置起始循环条件不成立的循环语句来观察 while 和 do…while 的不同。将变量i初值设置为0,然后循环表达式设置为i>1,显然循环条件不成立。循环体执行的是对变量j的加1这算,通过输出变量j在循环前的值和循环后的值进行比较。

例3.12使用do..while循环输出J的值

public class Dowhile {
    public static void main(String[] args) {
        int i=0,j=0;
        System.out.println("before do_whlie j="+j);
        do {
          j++;
    }while (i>1);
   System.out.println("atter do_while j="+j);  
}
}



例3.13使用while循环输出J的值

public class WhileTest {
    public static void main(String[] args) {
        int i=0,j=0;
        System.out.println("before do_whlie j="+j);    
    while (i>1);{
        j++;}
   System.out.println("atter do_while j="+j);  
   }
}


例3.14 使用for循环完成1—100的相加运算

public class AdditiveFor {
    public static void main(String[] args) {
        int sum=0;
        int i;
        for(i=1;i<=100;i++) {
       sum+=i;
    }
        System.out.println("the result :"+sum);
    }
}



3.5  foreach语句

foreach 语句是 for 语句的特殊简化版本,但是 foreach 语句并不能完全取代 for 语句,然而任何

foreach 语句都可以改写为 for 语句版本。foreach 并不是一个关键字,习惯上将这种特殊的 for 语句格式称之为foreach语句。foreach 语句在遍历数组等方面为程序员提供了很大的方便。

例3.15在项目中创建类Repetition,在主方法中定义一维数组,并使用foreach语句遍历

public class Repetition {
    public static void main(String[] args) {
    int arr[]= {7,10,1};//声明一维数组
    System.out.println("一维数组中的元素分别为");//输出信息
    for(int x :arr) {
    System.out.println(x);
     }
    }
 
}



例3.16使用嵌套的for循环输出乘法口诀

public class Multip {
    public static void main(String[] args) {
    int i, j;//创建两个整数变量
   for(i=1; i<10;i++) {//输出九行
       for(j=1;j<i+1;j++) {//输出行数相等的列
           System.out.print(j+"*"+i+"="+i*j+"\t");
       }
       System.out.println();//换行
   }
    }
    
 
}

3.4跳转语句

例3.17输出1—20的第一个偶数,使用break跳出循环

public class BreakTest {
    public static void main(String[] args) {
        for(int i=1; i<20;i++) {
            if(i%2==0) {//如果i是偶数
                System.out.println(i);//输出i的值
                break;//跳入下一循环
            }
        }
         System.out.println("---end---");
    }
 
}

例3.18在嵌套的循环中使用break,跳出内层循环

public class BreakInside {
    public static void main(String[] args) {
        for(int i=0;i<3;i++) {
            for(int j=0;j<6;j++) {
                if(j==4) {//如果J等于4的时候就结束内循环
                    break;
                }
                System.out.println("i="+i+" j="+j);
            }
        }
 
    }
 
}

例3.19使用带有标签的break跳出外层循环

public class BreakOutside {
    public static void main(String[] args) {
        Loop:    for(int i=0;i<3;i++) {//在for循环前用标签标记
            for(int j=0;j<6;j++) {
                if(j==4) {//如果J等于4的时候就结束内循环
                    break Loop;//跳出Loop标签标记的循环体
                }
                System.out.println("i="+i+" j="+j);
            }
        }
 
    }
 
}

例3.20输出1—20的偶数使用continue语句跳出循环

public class Continue {
    public static void main(String[] args) {
     for(int i=1;i<20;i++) {
         if(i%2!=0) {//如果i不是偶数
             continue;//跳入下一循环
         }
         System.out.println(i);
     }
 
    }
 
}

————————————————



版权声明:本文为m0_65556796原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。