知识点
while语句,do_While语句
-
用while循环语句实现,打印出20个3的倍数的和
public class WhileDemo1 { public static void main(String[] args) { int i = 3,sum = 0,count = 0; while (count<=20){ i += 3; // 3的倍数 sum += i; //求和 count++; //统计数 } System.out.println(sum); } }
-
用do_while循环语句实现,打印出3的倍数,如果这个数是7的倍数则结束程序。
public class DoWhileDemo1 {
public static void main(String[] args) {
int i = 0;
do {
if (i % 3 == 0) {
System.out.println(i);
//打印3的倍数
} i++;
} while (i % 7 != 0);//若为7的倍数则结束程序
}
}
do_while循环语句实现,打印出3的倍数,如果这个数是7的倍数则结束程序
-
用while循环语句实现,打印出0-100,不包括7或者3的倍数
public class WhileDemo2 { public static void main(String[] args) { int i = 0; while (i<100){ i ++; //使用if语句,将“不为3的倍数”和“不为7的倍数”作为判断条件 if((i%3 != 0) & (i%7 != 0)){ System.out.println(i); } } } }
-
使用do-while实现:输出摄氏温度与华氏温度的对照表,要求它从摄氏温度0度到250度,每隔20度为一项,即每隔20摄氏度需要对华氏温度进行计算,从0摄氏度开始,并且对照表中的条目不超过10条。
转换关系:华氏温度= 摄氏温度*9 / 5.0 + 32
import java.util.Scanner;
public class DoWhileDemo2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入摄氏温度:");
double temperature = sc.nextDouble();
do {
double f = temperature*9 / 5.0 + 32;
System.out.println(temperature+"摄氏度(℃)转化成华氏温度是(°F):"+f);
//温度依次+20
temperature += 20;
} while (temperature >250);//若为温度大于250摄氏度则结束程序
}
}
综合练习
循环,嵌套循环
-
循环结构是如何最后退出循环的,有哪些不同的情况请说明。
循环条件返回false 在循环体内,一旦执行到break,跳出循环
2.指出如下程序输出的结果::
label: for (int i = 1; i <= 4; i++) { for (int j = 1; j <= 10; j++) { if (j % 4 == 0) { continue label; } System.out.print(j); } System.out.println(); }
输出结果为:123123123123
-
一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3。编程 找出1000以内的所有完数。(因子:除去这个数本身的其它约数)
public class Demo4 {
public static void main(String[] args) {
for (int i = 1; i <= 1000; i++) {
int sum = 0;//完数初始化
for (int j = 1; j < i; j++) {
if (i % j == 0)//找到完数因数并相加
{
sum += j;
}
}
if (i == sum) {
System.out.println(i);
}
}
}
}
-
-
说明break和continue使用上的相同点和不同点
break与continue都可以中断循环;
但continue是结束当前循环进入下一循环,不跳出循环体。
break是结束循环并跳出循环体。
-
输入高度,输出直角三角形。如:输入5, 将输出如下图形
# ## ### #### #####
import java.util.Scanner;
// 1.导包
//输入高度,输出直角三角形。如:输入5, 将输出如下图形
public class Demo5 {
public static void main(String[] args) {
// 2.创建键盘录入对象
Scanner sc = new Scanner(System.in);
//给定一个年份
System.out.println("请输入你要的高度:");
int n = sc.nextInt();
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= i; j++) {
System.out.print("#");
}
System.out.println();
}
}
}
-
输入高度,输出倒直角三角形。如:输入6, 将输出如下图形
****** ***** **** *** ** *
- for (int i = 1; i <= n; i++) {
// 第一个for控制*高度,有几行
for (int j = n - i; j >= 0; j--) {
//第二个for控制每一行*个数,每一行有几个*,
// 其中int j的初始值n-i为最多的那一行星星个数,
System.out.print("*");
}
System.out.println();
}
import java.util.Scanner;
//输入高度,输出倒直角三角形
public class Demo6 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个数:");
int n = sc.nextInt();
for (int i = 1; i <= n; i++) {
// 第一个for控制*高度,有几行
for (int j = n - i; j >= 0; j--) {
//第二个for控制每一行*个数,每一行有几个*,
// 其中int j的初始值n-i为最多的那一行星星个数,
System.out.print("*");
}
System.out.println();
}
}
}
-
执行如下代码后,i的值是多少?
public static void main(String[] args) { int i=10; while(i>0){ i = i +1; if(i==10){ break; } } System.out.println("i=" + i); }
i=-2147483648
-
打印1-100之间非13的倍数,使用continue语句
//1. 打印1-100之间非13的倍数,使用continue语句
public class Demo8 {
public static void main(String[] args) {
//打印1-100之间非13的倍数,使用continue语句
for(int i=1;i<=100;i++){
if(i%13==0){
continue;//13倍数跳出当前循环
}else{
System.out.println(i);//写出非13倍数
}
}
}
}
-
打印自然数的个数
1)打印1~100之间 6的倍数的个数
public class Demo9 { public static void main(String[] args) { // 定义个数count int count = 0; //打印1-100之间6的倍数 for (int i = 1; i <= 100; i++) { if (i % 6 == 0) { count++; //6的倍数统计一次 } } System.out.println("1~100之间 6的倍数的个数为"+count); } }
1~100之间 6的倍数的个数为16
2)求出1~100之间,既是3又是7的倍数的自然数出现的次数?
//求出1~100之间,既是3又是7的倍数的自然数出现的次数?
public class Demo10 {
public static void main(String[] args) {
// 定义个数count
int count = 0;
//打印1-100之间既是3又是7的倍数的自然数
for (int i = 1; i <= 100; i++) {
if (i % 3 == 0 & i % 7 == 0) {
count++; //每打印依次统计次数+1
System.out.println(i);
}
}
System.out.println("1~100之间既是3又是7的倍数的自然数个数为"+count);
}
}
-
打印如下的图形:菱形1
* * * * * * * * * * * * * * * * * * * * * * * * *
import java.util.Scanner;
//打印如下的图形:菱形1
public class Demo11 {
public static void main(String[] args) {
//打印星星
System.out.println("请输入需要的行数");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
//打印上半部分
for (int i = 0; i < n; i++) {
for (int j = 0; j < 2 * n; j++) {
if (j < n - i)
System.out.print(" ");
if (j >= n - i && j <= n + i)
System.out.print("*");
}
System.out.println();
}
//打印下半部分
for (int i = 1; i < n; i++) {
System.out.print(" ");
for (int j = 0; j < 2 * n - i; j++) {
if (j < i)
System.out.print(" ");
if (j >= i && j < 2 * n - i - 1)
System.out.print("*");
}
System.out.println();
}
}
}