循环结构(no.2)
while循环
格式:
while(判断条件语句){
循环体语句;
}
扩展格式:
初始化语句;
while(判断条件语句){
循环体语句;
控制条件语句;
}
执行顺序:
初始化语句—判断条件语句—循环体语句—控制条件语句—判断条件语句—循环体语句—控制条件语句…直到判断条件语句不成立,退出循环
例题1:
猜数字游戏:系统默认一个数字,通过用户的输入,进行一定的提示,帮助用户正确猜到数字
思路
猜的数字: int num = 654;
条件:int guess;
while (guess != num){
猜数字;
guess < num;猜小了
guess > num;猜大了
}
guess==num:输出:猜对了
package cn.tedu.day03;
import java.util.Scanner;
public class whileDemo {
public static void main(String[] args) {
int num = 654;
Scanner sc = new Scanner(System.in);
System.out.println("请输入您猜的数字:");
int guess = sc.nextInt();
while(guess!=num){
if( guess < num ){
System.out.println("猜小了");
}else if(guess>num){
System.out.println("猜大了");
}
System.out.println("继续猜");
guess = sc.nextInt();
}
if(guess==num){
System.out.println("猜对了");
}
}
}
改进:不再是默认固定的数字,随机产生一个数字
package cn.tedu.day03;
import java.util.Scanner;
public class whileDemo {
public static void main(String[] args) {
//随机产生被猜的数字 Math.random() 随机产生0.0-0.9999999....的数字
///Math.random()*1000 随机产生 0.0-999.99999999999...的数字
int num=(int)(Math.random()*1000)+1;
Scanner sc = new Scanner(System.in);
System.out.println("请输入您猜的数字:");
int guess = sc.nextInt();
while(guess!=num){
if( guess < num ){
System.out.println("猜小了");
}else if(guess>num){
System.out.println("猜大了");
}
System.out.println("继续猜");
guess = sc.nextInt();
}
if(guess==num){
System.out.println("猜对了");
}
}
}
do while方法
格式:
do{
循环体;
}while(判断条件语句);
执行顺序:
先执行循环体,再执行判断条件语句,如果条件判断为真,执行循环体,否则跳出循环
例题:猜数字游戏
package cn.tedu.day03;
import java.util.Scanner;
public class doWhileDemo {
public static void main(String[] args) {
int num=(int)(Math.random()*1000)+1;
Scanner sc = new Scanner(System.in);
System.out.println("请输入您猜的数字:");
int guess = sc.nextInt();
do{
if( guess < num ){
System.out.println("猜小了,继续猜!");
}else if(guess>num){
System.out.println("猜大了,继续猜!");
}else if(guess==num){
System.out.println("猜对了");
}
guess = sc.nextInt();
}while(guess!=num);
if(guess==num){
System.out.println("猜对了");
}
}
}
break和continue:
continue:
用于循环结构,结束本次循环,继续下次循环
break:
用于switch语句和循环结构,结束所有循环,跳出循环体
例:continue
package cn.tedu.day03;
public class ContinueDemo {
public static void main(String[] args) {
for(int i = 0 ;i < 10;i++){
if(i%2==0){
continue;
}
System.out.println(i);
}
}
}
break
package cn.tedu.day03;
public class BreakDemo {
public static void main(String[] args) {
for(int i = 1 ;i < 10;i++){
if(i%3==0){
break;
}
System.out.println(i);
}
}
}