java --java基础 for循环和while循环,
分享于 点击 19106 次 点评:270
java --java基础 for循环和while循环,
一、 for 循环
- 作用: 循环的作用是让代码重复执行
- 语法:
for(表达式1;表达式2;表达式3){//注意这两个分号是必须的
循环体
}
-
表达式1:初始化循环前的参数,只执行一次
-
表达式2:逻辑表达式,循环的判断条件,返回真,进入循环,返回家则退出循环
-
表达式3:再次进入循环前执行的一般用来对变量赋值,循环的步长
-
for循环支持其中的3个表达式都没有表达式的 for(;;)分号是必须的
【例子】
// 输出100遍好好学习
for(int i=1;i<=100;i++){
System.out.println("第"+i+"次好好学习");
}
int i=0;
for(;;){
i++;
System.out.println("第"+i+"次好好学习");
if(i>100){
break;
}
}
//输出第i门成绩的平均分
Scanner input = new Scanner(System.in);
System.out.print("请输入你的姓名:");
String name = input.next();
int sum=0;
for(int i=1;i<=5;i++){
System.out.print("请输入第"+i+"门课程的成绩:");
int a=input.nextInt();
sum+=a;
}
System.out.println(name+"的总成绩是"+sum+",平均成绩是"+sum/5.0);
二、while循环和DO while循环
语法:
while(逻辑表达式){ //逻辑表达式为真进入循环,为假则退出循环
循环体
}
public class while_01 {
public static void main(String[] args) {
// 输出100次好好学习
//while
int i=0;
while(i++<100){
System.out.println("好好学习第"+i+"次");
}
System.out.println("-----------------------");
// do while
int j=1;
do {
System.out.println("好好学习第"+j+"次");
}while(j++<100);
}
}
- do while 是先执行后判断,至少会输出一个条件。
- 在大多数情况下while 和 do while还是可以相互转换使用。
for循环和while 循环的区别:
- for 循环主要使用的场景,在进入循环之前就确定循环次数;
- while循环适用的场景较多的是循环的退出条件在循环中是不断变化,循环次数是不确定的。
【例1】
输入y ,输出 继续学习
输入n , 输出退出循环,输出完成学习
import java.util.Scanner;
public class while02 {
public static void main(String[] args) {
// 输入y ,输出 继续学习
// 输入n , 输出退出循环,输出完成学习
Scanner input = new Scanner(System.in);
System.out.println("学习完了吗?(y)是(n)否:");
String YN = input.next();
while("n".equals(YN)) {
System.out.println("还不快去学习!");
System.out.println("学习吗?(y)是(n)否:");
YN = input.next();
}
System.out.println("学习完了,去玩吧!");
}
}
【例2】
获取一个1-100的随机数
不断从控制台输入数字 输出猜大了
猜中了退出循环 输出猜了几次
3次及以下 输出真棒
4-7次 输出真厉害
8次及以上 输出继续努力
import java.util.Random;
import java.util.Scanner;
public class while03 {
public static void main(String[] args) {
// 获取一个1-100的随机数
// 不断从控制台输入数字 输出猜大了
// 猜中了退出循环 输出猜了几次
// 3次及以下 输出真棒
// 4-7次 输出真厉害
// 8次及以上 输出继续努力
// 电脑获取1~100的随机整数
Random ran = new Random();
int computer = ran.nextInt(100)+1;
//从控制台输入一个数字
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数字:");
int num = input.nextInt();
int count = 1; //计数器
while(computer!=num) {
if(num>computer) {
System.out.println("你猜大了!");
System.out.println("请输入一个数字:");
num = input.nextInt();
}else {
System.out.println("你猜小了!");
System.out.println("请输入一个数字:");
num = input.nextInt();
}
count++;
}
if(count<=3) {
System.out.println("你真厉害!猜了"+count+"次就猜中了!");
}else if(count<=7) {
System.out.println("还不错嘛,猜了"+count+"次!");
}else {
System.out.println("再接再厉哦~你猜了"+count+"次才猜中~~");
}
}
}
【例3】
穷举法: 买奴隶男人3个金币,女人2个金币,小孩1个金币,现在有50个金币,要买30人,能怎么买?
public class while04 {
public static void main(String[] args) {
/* 男3 女2 孩1
共50金币,买30人
买多少?
*/
int m = 3;
int w = 2;
int c = 1;
int count=0;
for(int i=0;i<=(50/3);i++) {
for(int j=0;j<=(50/2);j++) {
for(int k=0;k<=50;k++) {
if(i+k+j==30 && m*i+w*j+c*k==50) {
System.out.println("男人买了"+i+"个,女人买了"+j+"个,小孩买了"+k+"个~");
count++;
}
}
}
}
System.out.println("一共有"+count+"种组合");
}
}
【例4】
/*
* 利用双重循环 在控制台输出如下图形
* 5x5的矩阵
* *****
* *****
* *****
* *****
* *****
*/
for(int i=0;i<5;i++) { //外层循环 控制行数
for(int j=0;j<5;j++) { //内层循环 控制个数
System.out.print("*");
}
}
System.out.println();
/*
* *
* **
* ***
* ****
* *****
*/
for(int i=1;i<=5;i++) {
for(int j=0;j<i;j++) {
System.out.print("*");
}
System.out.println();
}
/*
* *****
* ****
* ***
* **
* *
*
*/
for(int i=5;i>=1;i--) {
for(int j=i;j>=1;j--) {
System.out.print("*");
}
System.out.println();
}
/*
* 乘法表
*
*/
/*
* *
* **
* ***
* ****
* *****
*/
for(int i=1;i<=9;i++) {
for(int j=1;j<=i;j++) {
System.out.print(i+"*"+j+"="+(i*j)+" ");
}
System.out.println();
}
/*
* 第一步:
* *
* ***
* *****
* 第二步:
* *******
* *****
* ***
* *
*
*
*/
for(int i=0;i<=3;i++) {
for(int j=4;j>i;j--) {
System.out.print(" ");
}
for(int k=1;k<=2*i-1;k++) {
System.out.print("*");
}
System.out.println();
}
for(int i=4;i>0;i--) {
for(int j=i;j<4;j++) {
System.out.print(" ");
}
for(int k=2*i-1;k>0;k--) {
System.out.print("*");
}
System.out.println();
}
/*
* 请输入行数:6
* 行数必须为单数!
* 请输入行数:4
* 行数必须为单数!
* 请输入行数:7
* *
* ***
* *****
* *******
* *****
* ***
* *
*
*
*/
import java.util.Scanner;
Scanner input = new Scanner(System.in);
System.out.print("请输入行数:");
int line = input.nextInt();
while(line%2==0) {
System.out.println("请输入奇数!");
System.out.print("请输入行数:");
line = input.nextInt();
}
int up =line/2;
int down=up+1;
for(int i=0;i<=up;i++) {
for(int j=down;j>i;j--) {
System.out.print(" ");
}
for(int k=1;k<=2*i-1;k++) {
System.out.print("*");
}
System.out.println();
}
for(int i=down;i>0;i--) {
for(int j=i;j<down;j++) {
System.out.print(" ");
}
for(int k=2*i-1;k>0;k--) {
System.out.print("*");
}
System.out.println();
}
/*
* 请输入行数:6
* 行数必须为单数!
* 请输入行数:4
* 行数必须为单数!
* 请输入行数:7
* A
* ABC
* ABCDE
* ABCDEFG
* ABCDE
* ABC
* A
*/
// int c=65;
// for(int i=1;i<=26;i++) {
// System.out.println((char)c++);
// }
Scanner input = new Scanner(System.in);
System.out.print("请输入行数:");
int line = input.nextInt();
while(line%2==0) {
System.out.println("请输入奇数!");
System.out.print("请输入行数:");
line = input.nextInt();
}
int up =line/2;
int down=up+1;
for(int i=0;i<=up;i++) {
int c=65;
for(int j=down;j>i;j--) {
System.out.print(" ");
}
for(int k=1;k<=2*i-1;k++) {
System.out.print((char)c++);
}
System.out.println();
}
for(int i=down;i>0;i--) {
int c=65;
for(int j=i;j<down;j++) {
System.out.print(" ");
}
for(int k=2*i-1;k>0;k--) {
System.out.print((char)c++);
}
System.out.println();
}
}
相关文章
- 暂无相关文章
用户点评