public class Test{
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("输出200以内能被7整除但是不能被4整除的数字");
int k = 1;// 一个计数器,后面用于控制每行打印的个数
// 用for循环进行200以内的循环
for (int i = 0; i <= 200; i++) {
// if语句判断是否为题目中的条件,如果满足,则打印
if (i % 7 == 0 && i % 4 != 0) {
System.out.print(i + "\t");
// 每次循环都将计数器+1
k++;
// 如果计数器大于6就换行,并且将计数器归一,重新进入下一次循环计数
if (k > 6) {
System.out.println();
k = 1;
}
}
}
}
}
public class tset {
public static void main(String []args){
// 方法一
int sum1=1;
for(int i=9;i>=1;i--){
sum1=(sum1+1)*2;
}
System.out.println("sum1="+sum1);
// 方法二
int sum2=1;
for (int i=1;i<=9;i++){
sum2=(sum2+1)*2;
}
System.out.println("sum2="+sum2);
}
}
1321Java 条件语句
输出 200 以内能被 7 整除但是不能被 4 整除的数字,并且每行输出 6 个:
public class Test{ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("输出200以内能被7整除但是不能被4整除的数字"); int k = 1;// 一个计数器,后面用于控制每行打印的个数 // 用for循环进行200以内的循环 for (int i = 0; i <= 200; i++) { // if语句判断是否为题目中的条件,如果满足,则打印 if (i % 7 == 0 && i % 4 != 0) { System.out.print(i + "\t"); // 每次循环都将计数器+1 k++; // 如果计数器大于6就换行,并且将计数器归一,重新进入下一次循环计数 if (k > 6) { System.out.println(); k = 1; } } } } }执行结果:
1320Java 条件语句
把需要打印的菱形放在一个正方形里面,控制台打印出一个a*a的区域,找出菱形边所在的函数,逢边上的点打印"*",其他点打印" "。不用区分升序降序,请看代码:
public class Draw{ int a,b; //a是要生成的菱形行数 int h; //h是方法中的参数,也是行数 int i,j; //i j是循环结构参数 public void draw(int h ){ for(i = 1 ;i <= h ;i++){ //逐行打印 for(j = 1;j <= h;j++){ //每行打印个数与行数保持一致 //下面语句是菱形四条边的函数,在边上的坐标点,打印*,否则打印空格 if(j == (h + 3) / 2 - i || j == (h - 1) / 2 + i || j == i - (h - 1 ) / 2 || j == (3 * h + 1) / 2 - i){ System.out.print("*"); }else{ System.out.print(" "); } } System.out.println(); //第 i 行打印完换行 } } public static void main(String[] args){ //静态方法 Draw b = new Draw(); //初始化方法 int a = 35; //赋值并执行draw方法 b.draw(a); } }1319Java 条件语句
运用前面变量和for循环,以及if知识,编制一个小程序,程序的功能是在控制台输入由*号组成的菱形。请看以下代码:
public class Demo2 { // 下面是升序的代码 public void prit1(float c) { float p = c / 2;// 升序排序 float d;// 声明行数变量 float e;// 声明打印*号的变量 float f;// 声明打印空格的变量 float r;// 声明升序排序 float s = c % 2;// 取模 if (s == 0) { System.out.println("你输入的数据不能形成菱形结构"); } else { for (d = 1; d <= p; d++) { for (f = p; f >= d; f--) { System.out.print(" "); } for (e = 1; e <= d * 2 - 1; e++) { if (e == 1 || e == d * 2 - 1) { System.out.print("*");// 如果是第一个数和最后一个数,就输入* } else { System.out.print(" ");// 否则输入空格 } } System.out.println(); } } } // 下面是打印倒序的代码 public void prit2(float m) { float i;// 声明行数变量 float j;// 声明打印*号的变量 float k;// 声明打印空格数的变量 float n = m / 2 + 1;// 倒序排序 float o = m % 2;// m取模 if (o == 0) { System.out.print(""); } else { for (i = 1; i <= n; i++)// 行数循环; { // 打印*号前打印空格; for (k = 0; k < i - 1; k++) { System.out.print(" "); } // 下面打印*号个数的循环; for (j = (n - k) * 2 - 2; j >= 1; j--)// 打印*号个数的循环; { if (j == (n - k) * 2 - 2 || j == 1) { System.out.print("*"); } else { System.out.print(" "); } } // 打印完*号换行打印; System.out.println(); } } } public static void main(String[] args) { Demo2 a = new Demo2(); float b = 11;// 根据行数,判断是否可以组成菱形。如果是基数行可以输入对应的菱形,如果是偶数行则输出"你输入的数据不能形成菱形结构"; a.prit1(b); a.prit2(b); } }1318Java 循环结构
一只小猴子一天摘了许多桃子,第一天吃了一半,然后忍不住又吃了一个;第二天又吃了一半,再加上一个;后面每天都是这样吃。到第10天的时候,小猴子发现只有一个桃子了。问小猴子第一天共摘了多少个桃子。
public class tset { public static void main(String []args){ // 方法一 int sum1=1; for(int i=9;i>=1;i--){ sum1=(sum1+1)*2; } System.out.println("sum1="+sum1); // 方法二 int sum2=1; for (int i=1;i<=9;i++){ sum2=(sum2+1)*2; } System.out.println("sum2="+sum2); } }1317Java 循环结构
Java 嵌套循环之跳出多层循环
例:有以下程序,输出 0-99,两个数值间使用空格分隔,每 10 个数一行,每行用 ---- 分隔,代码:
public class Test { public static void main(String []args) { for(int i = 0; i < 10; i++){ for(int j = 0; j < 10; j++){ System.out.print("" + i + j +" "); } System.out.println("\n -------------------------------------- \n"); } System.out.println("输出完毕!"); } }输出:
输出完毕!
题目要求在不修改循环结构的情况下使输出结果变成输出 0-29:
输出完毕!
根据题意我们一般情况下首先会想到直接判断当大于 29 的时候就跳出循环就是了。
代码如下:
public class Test { public static void main(String []args) { for(int i = 0; i < 10; i++){ for(int j = 0; j < 10; j++){ if(i * 10 + j > 29){ break; } System.out.print("" + i + j +" "); } System.out.println("\n -------------------------------------- \n"); } System.out.println("输出完毕!"); } }输出:
输出完毕!
看输出结果确实达到了只是输出 0-29,但是你会发现和题目要求的输出结果是不一样的,后面多出了很多分隔线条,那是因为跳出循环体的语句 break 只能跳出当前语句的上一层循环。
这时我们需要想办法让他跳出多层循环。
修改后代码如下:
public class Test { public static void main(String []args) { lable: for(int i = 0; i < 10; i++){ for(int j = 0; j < 10; j++){ if(i * 10 + j > 29){ break lable; } System.out.print("" + i + j +" "); } System.out.println("\n -------------------------------------- \n"); } System.out.println("输出完毕!"); } }输出:
输出完毕!
我们在第 3 行定义了一个标记 标记名是 lable。
然后在第 7 行的跳出循环语句中使用 break lable 跳出到 lable 标记的循环外面。