博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java循环语句
阅读量:6683 次
发布时间:2019-06-25

本文共 4485 字,大约阅读时间需要 14 分钟。

一、循环语句

1.Scanner(next()和nextInt())和Random(nextInt())的使用

  • 代码:
import java.util.Scanner;import java.util.Random;class ScannerRandomDemo_1 {	public static void main(String[] args) {		Scanner sc = new Scanner(System.in);		Random ran = new Random();		//定义变量int类型i,把键盘录入的数赋值给i		int i = sc.nextInt();		if (i % 2 == 0) {		//判断录入的数的奇偶性			System.out.println("您输入的数 " + i + " 是偶数");		}else{			System.out.println("您输入的数 " + i + " 是基数");		}		//随机一个[0,maxNum)的整数,注意包含头不包含尾		System.out.println("随机一个0到您输入的数之间的一个数");		int maxNum = sc.nextInt();		int j = ran.nextInt(maxNum);		System.out.println(j);	}}复制代码
  • 运行结果:

2.利用for和if 求出从1~100以内的偶数的和

a.方法一

  • 代码:
class ForIfDemo_1 {	public static void main(String[] args) {		int sum = 0;		for (int i = 1 ; i <= 100 ; i ++) {			if (i % 2 == 0) {	//判断i是否是偶数			sum = sum + i;		//是偶数则将把值赋值到sum中			}		}		System.out.println(sum);//输出1~100之间偶数之和	}}复制代码
  • 运行结果

b.方法二

  • 代码:
class SumEven_1 {	public static void main(String[] args) {		int sum = 0;		for (int i = 2 ; i <= 100 ; i += 2 ) {			sum = sum + i;		}		System.out.println(sum);	}}复制代码
  • 运行结果

3.利用双层for循环打印直角三角形

  • 代码:
class RightTriangle {	public static void main(String[] args) {		for (int i = 1 ; i <= 10 ; i++ ) {			for (int j = 0 ; j < i ; j ++ ) {			System.out.print("·");			}			System.out.println();		}	}}复制代码
  • 运行结果

4.猜数字小游戏案例

/*猜数字小游戏思路:	a.计算机生成一个[1,100]伪随机整数,然后调出键盘录入,让用户猜这个随机数,	b.如果用户猜的数字大于计算机生成的随机数,则提示“大了,请再猜!”;	c.如果用户猜的数字小于计算机生成的随机数,则提示“小了,请再猜!”;	d.如果用户猜的数字等于计算机生成的随机数,则提示“猜中了,收下我的膝盖!”。*/import java.util.Scanner;import java.util.Random;class GuessNum {	public static void main(String[] args) {		Scanner sc = new Scanner(System.in);		Random ran = new Random();		int randomNum = ran.nextInt(100) + 1;		System.out.println("Mr Robot已经选好了1-100的数字,请尽情的猜吧!");		while (true) {			int guessNum = sc.nextInt();			if (guessNum < randomNum) {				System.out.println("小了,请再猜!");			} else if (guessNum > randomNum) {				System.out.println("大了,请再猜!");			} else {				System.out.println("牛逼啊,猜中了,请收下我的膝盖!");				break;			} 		}	}}复制代码
  • 运行结果:

二、拓展练习:

1.编写程序:(a,b为分析,最终只完成c即可)

  1. 生成1个1至10之间的随机整数,并打印结果到控制台(线索:利用Random类的生成整数随机数的功能)
  2. 生成20个1至10之间的随机整数,随机数之间用空格分隔(线索:利用Random类,重复生成随机数,利用for循环)
  3. 生成20个1至10之间的随机数,每5个一行进行打印(线索:利用计算器和%运算来控制每5个一换行)
  • 代码:
import java.util.Random;class RandomNumberArray {	public static void main(String[] args) {		Random ran = new Random();		for (int i = 1 ; i <= 20 ; i ++ ) {			//生成一个[1,10]之间的随机数			int singleRandomNumber = ran.nextInt(10) + 1;			System.out.print(singleRandomNumber + " ");			//为了打印整齐,如果随机数小于10,多打印一个空格			if (singleRandomNumber < 10) {				System.out.print(" ");			}			//每五个换行一次			if (i % 5 == 0) {				System.out.println();			}		}	}}复制代码
  • 运行结果:

2.编写程序:(a,b为分析,只完成c即可)

  1. 只打印不包含7的1~10之内的整数(线索:对1~10之内的整数判断是否为7)
  2. 只打印数字中不包含7的 10到100之内的整数(线索:利用%10取出个位数,判断是否为7,利用/10取出百位数,判断是否为7)
  3. 只打印数字中不包含7的1~100之内的整数(线索:对a,b两个需求的代码整合)
  • 代码:
class IntegerNoSeven {	public static void main(String[] args) {		int count = 0;	//定义一个计数器		for (int i = 1 ; i < 100 ; i ++ ) {	//遍历[1,100)的所有的整数			//判断所有带有7的数,如果为true,continue跳出循环			if (i % 10 !=7 && i / 10 != 7) {				count ++;	//计数所有符合要求的整数				System.out.print(i + " ");	//输出[1,100)中所有的整数				if (i < 10) {		//保证打印整齐					System.out.print(" ");				}				if (count % 10 == 0) {	//计数达到10个换行				System.out.println();				}			}		}	}}复制代码
  • 运行结果

3.完成下面的程序

有一张纸的厚度为0.01米,折多少次可以折成珠穆拉玛峰的高度8848米。

  • 假设一张纸的厚度为0.001米,折一次后厚度是多少?
  • 折两次、三次、四次厚度是多少
  • 折多少次厚度>=8848米
  • 代码:
class PaperFolding {	public static void main(String[] args) {		double paperThickness = 0.01;		int count = 0;//定义一个计数器		while (true) {			//开始折纸			paperThickness = paperThickness * 2;			count ++;//计数			if (paperThickness >= 8848.0) {				break;			}		}		System.out.println(count);	}}复制代码
  • 运行结果:

4.看程序写结果:请自己独立分析,先不要编译运行。

a.第一题

  • 代码:
int x = 1,y = 1;if(x++==2 && ++y==2){   x =7;}System.out.println("x="+x+",y="+y);复制代码
  • 运行结果: x=2,y=1

b.第二题

  • 代码:
int x = 1,y = 1;if(x++==1 || ++y==1){	x =7;}System.out.println("x="+x+",y="+y);复制代码
  • 运行结果: x=7,y=1

c.第三题

  • 代码:
boolean b = true;if(b==false){	System.out.println("a");}else if(b){	System.out.println("b");}else if(!b){	System.out.println("c");}else{	System.out.println("d");}复制代码
  • 运行结果: b

三、附加题:

一个数如果恰好等于它的因子之和,这个数就称为 "完数 "如6=1+2+3.编程找出1000以内的所有完数。

  • 代码:
class PerfectNumber {	public static void main(String[] args) {		for (int num = 2; num <= 1000 ; num ++ ) {			int sum = 0;			for (int divisor = 1 ; divisor <= num / 2 ; divisor ++) {				if (num % divisor == 0 ) {					sum = divisor + sum;				}			}			if (sum == num) {				System.out.println(num);			}		}	}}复制代码
  • 运行结果:

转载于:https://juejin.im/post/5a34e6bd6fb9a0450407f371

你可能感兴趣的文章
Iterator 和 Iterable 区别和联系
查看>>
经典SQL语句大全
查看>>
测试LCD1602的显示,显示时间,提示语
查看>>
Linux常用命令
查看>>
SecureCRT 连接Ubuntu乱码解决
查看>>
Zabbix man手册
查看>>
APUE读书笔记-09进程关系(02)
查看>>
来南京工作两个月了!
查看>>
EDM邮件营销的七个基本原则
查看>>
dropna(thresh=n) 的用法
查看>>
Harbor镜像仓库漏洞扫描功能
查看>>
杂谈(20)写给妹妹的信-完整版
查看>>
边界在消失——2014年七大技术趋势预测
查看>>
综合考虑各系统的平衡——中科曙光数据中心产品事业部总经理沈卫东谈云数据中心节能...
查看>>
MongoDB +node.js图片读取服务
查看>>
关于jmeter里的自动重定向的使用-小强性能测试培训班学生作品
查看>>
我的友情链接
查看>>
将CDM中所有以Relatonship_开头的关系全部重命名,避免生成数据库因为重复关系名报错...
查看>>
C++ 标准库之algorithm
查看>>
系统限制和选项limit(一)
查看>>