7月8日学习日记

do/while循环

  do{循环体;}while(条件); 先执行循环体,然后进行条件判断,如果条件为true,则执行下次循环;如果 条件为false则终止循环。

  • 条件为false则终止循环。 不同于while循环的点:do/while循环至少执行循环体一次,而while循环有可能一次都不执行

例题

1-100求和

package qiu2;
public class Test5 {
public static void main(String[] args) {
    int i=0;
    int k=1;
    do {
        i+=k++;    
    }while(k<101 );
    System.out.println(i);
}
}

 for循环 

语法:for(表达式1;表达式2;表达式3){循环体;}

  • 执行表达式1
  • 执行表达式2,一般表达式2是一个条件,如果条件为true则执行循环体;如果条件为false则终止循 环
  • 执行循环体
  • 执行表达式3
  • 执行第2步骤

for循环一般用于可以明确循环次数的场景中;while循环一般用于不能预先确定循环执行次数的场景 中;do/while循环一般用于不能预先确定循环执行次数,同时要求循环体至少执行一次的场景中

输入两个正整数m和n,求其最大公约数和最小公倍数

package qiu3;

import java.util.Scanner;

public class Test8 {
  public static void main(String[] args) {
     //输入数据
      Scanner sc =new Scanner(System.in);
      int k1 =0;
      System.out.println("请输入第一个正整数");
      while(true) {
          k1 =sc.nextInt();
          if( k1<0)System.out.println("请输入一个正确的正整数");
          else break;
        
    }
      int k2 =0;
      System.out.println("请输入第二个正整数");
      while(true) {
          k2 =sc.nextInt();
          if( k1<0)System.out.println("请输入一个正确的正整数");
          else break;
        
    }
     //获得最小公倍数
      int beishu =-1;
      int max = Math.max(k1, k2);
      for(int k =max ;k<= k1*k2;k++) {
          if(k%k1==0 && k%k2==0) {
              beishu=k;
              break;
          }
          }
      
     //获得最大公约数
      int yueshu = -1;
      int min=Math.min(k1, k2);
      for(int k=min; k>1;k--) {
          if(k1%k==0 && k2%k==0) {
              yueshu=k;
              break;
          }
          } 
     //输出
      if(beishu !=-1)System.out.println(k1+"和"+k2+"的最小公倍数为:"+beishu);
      if(yueshu==-1)System.out.println(k1+"与"+k2 +"互质");
      else System.out.println(k1+"和"+k2+"的最小公约数为:"+yueshu);
}
}
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值