JAVA语言:第二章 Java的基础语法_流程结构

一、If(省略)

二、switch…case…

1. 语法结构

switch(表达式){
	case 常量值1:
		语句块1;break;case 常量值2:
		语句块2;break;...default:
		语句块n+1;break;】
	】
}

2. 要求:

1case后面必须是常量值
(2case后面的常量值不能重复
(3switch()中的表达式的类型有要求:
	允许4种基本数据类型:byte,short,int,char
	允许2种引用数据类型:枚举(JDK1.5之后)、String(JDK1.7之后)

3. 执行特点:

1)入口
	①当switch()中的表达式的值与某一个case后面的常量值“相等”,就会从这个case进入
	②当switch()中的表达式的值与所有的case后面的常量值都“不相等”,就会寻找default进入
(2)出口
	①自然出口:switch的结束}
	②中断出口:break    (或后面要讲的return等)
(3)一旦找到“入口”就会顺序往下执行,直到遇到“出口”
(4default的位置不一定在最后,习惯上我们写在最后

三、for循环

1. 注意:

1for(;;)其中的两个;不能多也不能少
(2)循环条件表达式②要么不写,要么必须是boolean类型

四、while循环(省略)

五、break和continue

1. break

1)用在switch或循环中
(2)结束switch或结束当前循环(本层循环结束)

2. continue

1)用于循环中
(2)结束本次循环,继续下一次循环

3. 示例

/*
7、输入两个正整数m和n,求其最大公约数和最小公倍数
*/
public class Test14_Exer7{
   public static void main(String[] args){
      //输入两个正整数m和n
      java.util.Scanner input = new java.util.Scanner(System.in);
      
      int m;
      while(true){
         System.out.print("请输入第一个正整数m的值:");
         m = input.nextInt();
         if(m<=0){
            System.out.println(m + "不是正整数,请重写输入!");
         }else{
            break;
         }
      }
      int n;
      while(true){
         System.out.print("请输入第一个正整数n的值:");
         n = input.nextInt();
         if(n<=0){
            System.out.println(n + "不是正整数,请重写输入!");
         }else{
            break;
         }
      }
      
      System.out.println("两个正整数:" + m + "," + n);
      
      //求m和n的最大公约数和最小公倍数
      /*
      1、概念
      公约数:能够把m和n都整除,就是它俩的公约数
      例如:6和9,公约数:1,3
            9和18,公约数:1,3,9
           5和13,公约数:1
      公倍数:能够被m和n都整除的,就是它俩的公倍数
      例如:6和9,公倍数:18,36....
            9和18,公倍数:18,36...
             5和13,公倍数:65,....
      
      2、如何找最大公约数
      例如:6和9
         从6开始,9%6==0?  6%6==0?
                9%5==0?   6%5==0?
                9%4==0?   6%4==0?
                9%3==0?   6%3==0?    binggou找到了  结束查找
      例如:9和18
         从9开始     9%9==0?  18%9==0?   binggou找到了  结束查找
      例如:5和13
         从5开始   5%5==?  13%5==0?
                 5%4==?  13%4==0?
                 5%3==?  13%3==0?
                 5%2==?  13%2==0?
                 5%1==?  13%1==0?   binggou找到了  结束查找
               其实只要找到5的平方根就可以了
      */
      
      //第一步:找出m和n中最大值和最小值
      int max = m>=n ? m : n;
      int min = m<n ? m : n;
      
      //第二步:从小的开始查找
      //这里的1也可以修改为min的平方根
      int maxYue = 1;
      for(int i=min; i>=1; i--){
         //看i是否能够同时把m和n都整除
         if(m%i==0 && n%i==0){
            maxYue = i;
            break;
         }
      }
      System.out.println(maxYue +"是" + m + "和" + n + "的最大公约数");
      
      //最小公倍数 = m*n / 最大公约数
      //System.out.println(m*n/maxYue +"是" + m + "和" + n + "的最小公倍数"); 
      
      //如果不知道这个公式
      //从max开始找,一直找到m*n
      for(int i=max; i<=m*n; i++){
         if(i%m==0 && i%n==0){
            System.out.println(i +"是" + m + "和" + n + "的最小公倍数"); 
            break;
         }
      }
   }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值