while循环
特征:先判断后执行。最少执行0次,最多无限次。
最佳实践:循环次数未知的情况下使用。
public class Demo01 {
public static void main(String[] args) {
int i = 1;
while (i <= 100) {
System.out.println("第"+ i++ +"遍,好好学习");
}
}
}
do while 循环
特征:先执行后判断。最少执行一次,最多执行无限次。
最佳实践:循环次数不确定的情况下使用。
public class Demo02 {
public static void main(String[] args) {
int i = 1;
do {
System.out.println("第"+ i++ +"遍,好好学习");
} while (i <= 100);
}
}
for循环
特征:最少执行0次,最多执行无限次。
最佳实践:已知循环次数的情况下可以使用。
public class Demo03 {
public static void main(String[] args) {
//四部分:1.声明变量并
for (int i = 1; i <= 100; i++) {
System.out.println("第"+ i +"遍,好好学习");
}
}
}
break 和 continue
break:跳出本层循环
continue:跳过本次循环
package org.jgs1904;
import java.util.Scanner;
/**
* 武器强化小游戏
*
* @author Renyw
* @date 2019年11月11日
*/
public class Work04 {
public static void main(String[] args) {
System.out.println("********************************");
System.out.println("*********武器强化小游戏*********");
System.out.println("********************************");
Scanner input = new Scanner(System.in);
System.out.println("请输入武器名称:");
String name = input.next();
// System.out.println("请输入当前武器等级:");
// int grade = input.nextInt();
int grade = 1;
double randomNum = Math.random();
flag1:
while (true) {
double rate = 1.0 / grade;
System.out.println("当前强化概率:"+ (int)(rate * 10000) / 100.0 + "%");
System.out.println("请选择:1.开始强化 0.结束游戏");
int num = input.nextInt();
switch (num) {
case 1:
if (randomNum < rate) {
System.out.println("强化成功," + name + "当前等级"+ ++grade);
}else {
System.out.println("强化失败," + name + "当前等级"+ --grade);
}
break;
case 0:
System.out.println("游戏已结束!");
break flag1;
default:
System.out.println("输入错误!");
continue;
}
}
input.close();
}
}
package org.jgs1904;
/**
* 鸡兔同笼
*
* @author Renyw
* @date 2019年11月12日
*/
public class Work05 {
public static void main(String[] args) {
//35head 94foot
int head = 35;
int foot = 94;
int chick = 35;
int rabbit = 35;
for (int i = 0; i <= chick; i++) {
for (int j = 0; j <= rabbit; j++) {
if (i + j == head && i * 2 + j * 4 == foot) {
System.out.println("鸡:"+i);
System.out.println("兔:"+j);
}
}
}
}
}
package org.jgs1904;
/**
* 水仙花数
*
* @author Renyw
* @date 2019年11月12日
*/
public class Work06 {
public static void main(String[] args) {
for (int num = 100; num < 1000; num++) {
int a = num % 10;
int b = num / 10 % 10;
int c = num / 100;
if (Math.pow(a, 3) + Math.pow(b, 3) + Math.pow(c, 3) == num) {
System.out.println(num);
}
}
}
}
package org.jgs1904;
/**
* 闰年
*
* @author Renyw
* @date 2019年11月12日
*/
public class Work08 {
public static void main(String[] args) {
//闰年:能被4整除,但不能被100整除 或者能被400整除
for (int year = 1980; year < 2020; year++) {
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
System.out.println(year);
}
}
}
}
package org.jgs1904;
import java.util.Scanner;
/**
* 筛子猜点
*
* @author Renyw
* @date 2019年11月12日
*/
public class Work09 {
public static void main(String[] args) {
System.out.println("--------游戏开始-----------");
System.out.println("游戏规则:1-10点为小 11-18点为大 ");
Scanner input = new Scanner(System.in);
int gold = 1000;
while (gold <= 3000 && gold > 0) {
System.out.println("请选择:大 or 小:");
String res = input.next();
if (!res.equals("大") && !res.equals("小")) {
System.out.println("输入错误,请重新输入");
continue;
}
int grid1 = (int) (Math.random() * 6 + 1);
int grid2 = (int) (Math.random() * 6 + 1);
int grid3 = (int) (Math.random() * 6 + 1);
int grid = grid1 + grid2 + grid3;
System.out.println("请选择下注金额:");
int wager = input.nextInt();
if (wager > gold) {
System.out.println("请重新输入");
continue;
}
System.out.println("本轮点数为:" + grid1 + "," + grid2 + "," + grid3);
System.out.println("点数之和为:" + grid + "," + (grid <= 10 ? "大" : "小"));
String choose = grid <= 10 ? "大" : "小";
if (choose.equals(res)) {
System.out.println("猜对了");
gold += wager;
}else {
System.out.println("猜错了");
gold -= wager;
}
System.out.println("当前金币为:" + gold);
}
if (gold <= 0) {
System.out.println("failed");
} else {
System.out.println("succeed");
}
input.close();
}
}
package org.jgs1904;
/**
*
* @author Renyw
* @date 2019年11月12日
*/
public class Work10 {
public static void main(String[] args) {
//九九乘法表
for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + "*" + i + "=" + i * j + "\t");
}
System.out.println();
}
}
}
package org.jgs1904;
import java.util.Scanner;
/**
* 兔子
*
* @author Renyw
* @date 2019年11月12日
*/
public class Work11 {
//1 2 3 4 5
//1 1 2 3 5
//a[n] = a[n-1] + a[n-2]
int calcu(int n) {
if (n == 1 || n == 2) {
return 1;
}else {
return calcu(n - 1) + calcu(n - 2);
}
}
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入月数:");
int month = input.nextInt();
input.close();
// if (month <= 0 || month > 12) { }
Work11 wo = new Work11();
int num = wo.calcu(month);
System.out.println(num);
}
}
package org.jgs1904;
import java.util.Scanner;
/**
* 获得啤酒数
* 2元一瓶 2空瓶换一瓶 4瓶盖换一瓶
*
* @author Renyw
* @date 2019年11月12日
*/
public class Work12 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入金额:");
int money = input.nextInt();
input.close();
//购买的啤酒数
int count = money /2;
//瓶盖数
int cap = count;
//空瓶数
int bottle = count;
while (cap >= 4 || bottle >= 2) {
//兑换的数量
int temp = cap / 4 + bottle / 2;
//总数量=购买的+兑换的
count += temp;
//收集剩余的 以及刚兑换的瓶盖和空瓶
cap = cap % 4 + temp;
bottle = bottle % 2 + temp;
}
System.out.println(count);
}
}