Java循环基础

IMOOC JAVA第一季

第二天学习笔记
  • for 循环变量初始化和循环变量部分,可以初始化多个变量,同事初始化和改变多个变量的值。
    1. for (循环变量;循环条件;循环变量变化){ 循环操作}
for(int i=1,j=5; i<5;ji++,j--;){
    System.out.println(i + "+" + j + "(i + j)");
}
  1. 可以省略循环变量变化,把循环变量变化写在循环体中。
    3.表示i<10,但是不等于5才进行循环
for (int i=1; i < 10 &&  i  !=5;i++){
    System.out.println(i);
}

Question:计算1到100之间不能被3整除的数的和?
思路:定义一个变量sum来保存数据和,定义一个变量i代表1-100之间的数据。值从1开始,通过for循环判断i是否是3的倍数,符合要求的数据保存到sum中。

public class HelloWorld {
    public static void main(String[] args) {
        int sum = 0; // 保存不能被3整除的数之和

        // 循环变量 i 初始值为 1 ,每执行一次对变量加 1,只要小于等于 100 就重复执行循环
        for (int i = 1;    i<=100        ; i++       ) {

            // 变量 i 与 3 进行求模(取余),如果不等于 0 ,则表示不能被 3 整除
            if (i % 3 != 0) { 
                sum = sum + i; // 累加求和
            }
        }

        System.out.println("1到100之间不能被3整除的数之和为:" + sum);
    }
}

output:
1到100之间不能被3整除的数之和为:3367

Question:使用循环输出 1–10的数值,其中,如果数值大于 2 ,并且为 3 的倍数则停止输出。

public class HelloWorld{
public static void main(String[] args){
    int i=1;
    for(i=1; i < 10; i++){
    if(i>2 && i % 3 ==0){
    break;
    }
    System.out.println(i);
    }
    System.out.println("结束了");
}
}

output:
1
2
结束了


Question:循环将 1 到 10 之间的整数相加,如果累加值大于 20,则跳出循环,并输出当前的累加值。

public class HelloWorld{
public static void main(String[] args){
    int i=1;
    int sum = 0;  //保存当前累加值
    for(i=1; i < 10; i++){
        sum = sum + i; // 累加求和
    // 判断累加值是否大于20,如果满足则退出循环 
    if(sum>=20 ){
        System.out.println("当前累加值为"+sum);
        break;
    }
    }
    System.out.println("结束了");
}
}
  • Java循环跳转语句之 continue
    continue的作用是跳过循环体中剩余语句进行下一次循环。
    例如,打印 1–10 之间所有的偶数,使用 continue 语句实现代码为:
for(int i =0;i<10;i++){
    // 判断i是否为偶数
    if(i % 2==0){
        continue;   // 通过continue结束本次循环
    }
    System.out.println(i);
}

Question:求 1 到 10 之间的所有偶数的和

public class HelloWorld {
    public static void main(String[] args) {

        int sum = 0; // 保存累加值

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

            // 如果i为奇数,结束本次循环,进行下一次循环
            if ( i % 2 !=0            ) {
                continue;
            }

            sum = sum + i;
        }

        System.out.print("1到10之间的所有偶数的和为:" + sum);
    }
}
  • Java 循环语句之多重循环
    Question:使用 * 打印长方形
// 外城循环控制行数
for (int i = 1; i <= 3; i++){
    // 内层循环控制每行打印的*号数
    for (int j = 1; j < = 8; j++){
        System.out.println("*");
    }
    //每行打印完毕
    System.out.println();
}

Question:使用 * 打印直角三角形

public class HelloWorld {
    public static void main(String[] args) {

        System.out.println("打印直角三角形");

        // 外层循环控制行数
        for (int i = 1; i<=3;i++             ) {

            // 内层循环控制每行的*号数
            // 内层循环变量的最大值和外层循环变量的值相等
            for (int j = 1;j<=i;j++              ) {

                System.out.print("*");
            }

            // 每打印完一行后进行换行
            System.out.println();
        }
    }
}

Question:判断一个数(小于10位)的位数

  • 方法1
public class HelloWorld{
public static void main(String[] args){
int num = 999;
int count = 0;
if(num >= 0 && num<= 999999999){
    while(num!=0)
    {
/*num的值是999,count=0,所以num/10第一次的值为99.9,去小数位得到整数99,此时count++得到值为1;num又第二次循环时的值为99,带入执行,num/10=9.9,去除小数位,此时count++,值为2;num第三次带入值循环时值为9,带入执行,num/10的值为0.9,去小数位得到值为0,此时count++,count值为3;进入第四次循环时,num的值为0,不满足循环条件,所以循环终止,最后得到count为3*/
        count++;
        num/=10;
    }
    System.out.println("它是个"+count+"位的数!");
}
else{
    System.out.println("输入有误!");
}

}
}

/**
 *
 * @author henrytien@hotmail.com
 */
public class countNumber {
    final static int[] sizeTable = {
        9,99,999,9999,99999,999999,9999999,99999999,999999999, Integer.MAX_VALUE
    };
    static int sizeOfInt(int x){
        for(int i = 0;;i++){
            if (x <= sizeTable[i])
                return i + 1;
        }
    }
    /**
     *
     * @param args
     */
    public static void main(String[] args){
            System.out.println(sizeOfInt(1234));
            System.out.println(sizeOfInt(123));
            System.out.println(sizeOfInt(12345));
            System.out.println(sizeOfInt(12));
        }
    }

output:
4
3
5
2
BUILD SUCCESSFUL (total time: 0 seconds)

debug:中间漏了一个括号,还是不够细心呢。

  • Q:为指定成绩加分,直到分数大于等于 60 为止,输出加分前和加分后的成绩,并统计加分的次数
public class HelloWorld {
    public static void main(String[] args) {

        // 变量保存成绩
        int score = 53; 

        // 变量保存加分次数
        int count = 0;


        //打印输出加分前成绩 
        System.out.println("加分前成绩:"+ score);  


        // 只要成绩小于60,就循环执行加分操作,并统计加分次数
        while(score<60){ 
            count++;
            score ++;
        } 
        //打印输出加分后成绩,以及加分次数
        System.out.println("加分后成绩:"+ score);
        System.out.println("共加了"+ count + "次!");
    }
    }

output:
加分前成绩:53
加分后成绩:60
共加了7次!


  • 提高,用户输入整数成绩信息
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author henrytien@hotmail.com
 * 功能:实现用户输入分数低于60分执行加分操作,并统计加分次数,每次只加一分
 * 实现:定义一个变量score保存分数信息,count用于保存加分次数
 */
import java.util.Scanner;
public class HelloWorld {
    public static void main(String args[]){
        // 使用scanner方法
        Scanner input = new Scanner(System.in);     // 创建scanner对象
        System.out.print("请您输入考试成绩:");    
        // 获取用户输入的信息
        int score= input.nextInt();

        int count = 0; //定义加分次数
        System.out.println("加分前成绩:"+ score);
        while(score<60){
            score++;
            count++;
        }
        System.out.println("加分后成绩:"+ score);
        System.out.println("加分次数为"+count + "次!");
    }
}

output:
run:
请您输入考试成绩:12
加分前成绩:12
加分后成绩:60
加分次数为48次!
BUILD SUCCESSFUL (total time: 6 seconds)

  • 读取键盘输入
 Scanner input = new Scanner(System.in); //创建scannner对象
int score = input.nextInt();
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值