import java.util.Random;
import java.util.Scanner;
public class While {
//1输出1-6
//2输出1,3,5,7
//3输出6-1
//
public static void test() {
int i = 1;
while (i++ < 6) {
System.out.println(i);
}
i = 1;
while (i < 6) {
i++;
System.out.println(i);
}
i = 1;
//先判断再加加,上面二者一样
while (++i < 6) {
System.out.println(i);
}
i = 1;
//先加加在判断不能替代
while (i < 6) {
System.out.println(i++);
}
i = 1;
while (i < 6) {
System.out.println(i);
i++;//++i更好
}
//同样这样也可以,也就是说可以直接拿出来,小技巧
i = 1;
while (i < 6) {
System.out.println(i);
i += 1;//好于i = i+1;
}
//第一种最好,赋值,自增一起操作
//输出1-6
int num = 1;
while (num <= 6) {//num表示要输出的值,有点像for in (int num:arr)
System.out.println(num++);
}
//输出6-1
while (num >= 2) {
System.out.println(--num);
}
//输出1,3,5,7
while (num <= 7) {
System.out.println(num);
num += 2;
}
num = 1;
while (num < 20) {
System.out.println(num);
num += 2;
if (num > 7) {
break;
}
}
num = 1;
while (num < 20) {
if ((num & 1) == 0) {//偶数
num++;//偶数也要++
continue;
}
System.out.println(num++);
if (num > 7) {
break;
}
}
}
// Thread.currentThread()返回线程类对象
//此对象有sleep()方法 暂时休眠,会醒的,参数是long类型, 1000ms = 1s
//每两秒输出逐个输出1,3,5,7
//Thread.sleep(2000);
//定时,时间戳
//do while最少执行一次,第一次就不判断了
//确实需要
public static void main(String[] args) {
// testLozenge();
// game(200,1000);
test();
}
//猜数游戏
public static void game(int start, int end) {
//随机数
Random random = new Random();
int num = random.nextInt(100);//可以传递参数控制范围
System.out.println("随机数是" + num);
//产生随机数的范围,公式 bound:多少个数, +1从第几个数开始
num = random.nextInt(end - start + 1) + 1;//随机数公式
System.out.println("随机数范围为" + start + "-" + end);
System.out.println("随机数是" + num);
//键盘获取数值
Scanner sc = new Scanner(System.in);
// System.out.println("请输入随机数的范围");
int count = 0;//计数器
//最多尝试10次---这里可以改为for
while (count < 10) {
count++;
System.out.printf("请在%d-%d范围内输入一个数", start, end);
if (!sc.hasNextInt()) {
//可以判断下一个数是否整数
count--;
System.err.println("请输入整数");
sc.nextLine();
}
int num2 = sc.nextInt();
if (num2 < start || num2 > end) {
System.err.printf("您输入的整数不在合适范围内,请重新输出,范围是%d-%d%n", start, end);
count--;
continue;
}
if (num2 == num) {
System.out.println("挑战成功");
break;
} else {
if (num2 > num) {
System.out.println("您输入的数过大");
} else {
System.out.println("您输入的数过小");
}
}
System.out.println("您的一共尝试了" + count + "次" + "还有" + (10 - count) + "次机会");
}
if (count == 10) {
System.out.println("游戏结束");
}
}
//System.err.println();错误输出信息
//输出菱形
//如果用到while,注意条件位置,增量位置。可以没有,但是若是有,需要添加。用for更方便
public static void testLozenge() {
//
int splength = 20;
int xlength = 1;//初始值
int line = 1;
while (line < 20) {//20
int i = 0;
//先输出,还是先增加
while (i++ < splength) {
System.out.print(" ");
}
i = 0;
while (i++ < xlength) {
System.out.print("*");
}
System.out.println();
if (line < 10) {//是否添加等号
xlength += 2;
splength--;
} else {
xlength -= 2;
splength++;
}
line++;
}
}
}