您的位置:首页 > 编程语言 > Java开发

Java循环基础

2016-03-17 16:27 591 查看

IMOOC JAVA第一季

第二天学习笔记

for 循环变量初始化和循环变量部分,可以初始化多个变量,同事初始化和改变多个变量的值。

for (循环变量;循环条件;循环变量变化){ 循环操作}

for(int i=1,j=5; i<5;ji++,j--;){
System.out.println(i + "+" + j + "(i + j)");
}


可以省略循环变量变化,把循环变量变化写在循环体中。

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();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: