第二章:09流程控制[3for]

①格式

for(初始化語句;判斷條件語句;控制條件語句) {

? ? 循環體語句;

}

②注意事項

A:判斷條件語句無論簡單還是復雜結果是boolean類型。

B:循環體語句如果是一條語句,大括號可以省略;如果是多條語句,大括號不能省略。建議永遠不要省略。

C:一般來說:有左大括號就沒有分號,有分號就沒有左大括號

③實例

/*

For循環結構的使用

一、循環結構的4個要素

① 初始化條件

② 循環條件 ?--->是boolean類型

③ 循環體

④ 迭代條件

二、for循環的結構

for(①;②;④){

? ?③

}

執行過程:① - ② - ③ - ④ - ② - ③ - ④ - ... - ②

*/

class ForTest {

? ?public static void main(String[] args) {

? ? ? ?/*

? ? ? ?System.out.println("Hello World!");

? ? ? ?System.out.println("Hello World!");

? ? ? ?System.out.println("Hello World!");

? ? ? ?System.out.println("Hello World!");

? ? ? ?System.out.println("Hello World!");

? ? ? ?*/

? ? ? ?for(int i = 1;i <= 5;i++){//i:1,2,3,4,5

? ? ? ? ? ?System.out.println("Hello World!");

? ? ? ?}

? ? ? ?//i:在for循環內有效。出了for循環就失效了。

? ? ? ?//System.out.println(i);

? ? ? ?

? ? ? ?//練習:

? ? ? ?int num = 1;

? ? ? ?for(System.out.print('a');num <= 3;System.out.print('c'),num++){

? ? ? ? ? ?System.out.print('b');

? ? ? ?}

? ? ? ?//輸出結果:abcbcbc

? ? ? ?System.out.println();

? ? ? ?//例題:遍歷100以內的偶數,輸出所有偶數的和,輸出偶數的個數

? ? ? ?int sum = 0;//記錄所有偶數的和

? ? ? ?int count = 0;//記錄偶數的個數

? ? ? ?for(int i = 1;i <= 100;i++){

? ? ? ? ? ?

? ? ? ? ? ?if(i % 2 == 0){

? ? ? ? ? ? ? ?System.out.println(i);

? ? ? ? ? ? ? ?sum += i;

? ? ? ? ? ? ? ?count++;

? ? ? ? ? ?}

? ? ? ? ? ?//System.out.println("總和為:" + sum);

? ? ? ?}

? ? ? ?System.out.println("總和為:" + sum);

? ? ? ?System.out.println("個數為:" + count);

? ?}

}

?

需求:求5的階乘。

什么是階乘呢?

? ? n! = n*(n-1)! 規則

? ? n! = n*(n-1)*(n-2)*...*3*2*1

? ? ? //定義最終結果變量

? ? ? int jc = 1;

? ? ? //這里的x其實可以直接從2開始

? ? ? for(int x=2; x<=5; x++) {

? ? ? ? ? jc *=x;

? ? ? }

? ? ? System.out.println("1-5的階乘是:"+jc);

需求:在控制臺輸出所有的”水仙花數” ?

分析:

? ? 所謂的水仙花數是指一個三位數,其各位數字的立方和等于該數本身。

? ? 舉例:153就是一個水仙花數。

? ? 153 = 1*1*1 + 5*5*5 + 3*3*3 = 1 + 125 + 27 = 153

? ? A:三位數其實是告訴了我們范圍。

? ? B:通過for循環我們就可以實現獲取每一個三位數

? ? ? 但是麻煩是如何獲取這個三位數的個,十,百位上的數據

? ? ? 我們如何獲取一個數據的個,十,百呢?

? ? ? ? 假設有個一個數據:153

? ? ? ? ge: ? ?153%10 = 3

? ? ? ? shi: 153/10%10 = 5

? ? ? ? bai:153/10/10%10 = 1

? ? ? ? qian:x/10/10/10%10

? ? ? ? wan: ?x/10/10/10/10%10

? ? ? ? ...

? ? C:讓ge*ge*ge+shi*shi*shi+bai*bai*bai和該數據比較

? ? ? 如果相同,就把該數據在控制臺輸出。

?

???????????? //三位數其實是告訴了我們范圍。

? ? for(int x=100; x<1000; x++) {

? ? ? ? int ge = x%10;

? ? ? ? int shi = x/10%10;

? ? ? ? int bai = x/10/10%10;

? ? ? ? //讓ge*ge*ge+shi*shi*shi+bai*bai*bai和該數據比較

? ? ? ? if(x == (ge*ge*ge+shi*shi*shi+bai*bai*bai)) {

? ? ? ? ? ? //如果相同,就把該數據在控制臺輸出。

? ? ? ? ? ? System.out.println(x);

? ? ? ? }

? ? }

練習:請在控制臺輸出滿足如下條件的五位數

? ? 個位等于萬位

? ? 十位等于千位

? ? 個位+十位+千位+萬位=百位

分析:

? ? A:五位數就告訴了我們范圍。

? ? B:分解每一個五位數的個,十,百,千,萬位上的數據

? ? C:按照要求進行判斷即可

? ? //五位數就告訴了我們范圍。

? ? for(int x=10000; x<100000; x++) {

? ? ? ? //分解每一個五位數的個,十,百,千,萬位上的數據

? ? ? ? int ge = x%10;

? ? ? ? int shi = x/10%10;

? ? ? ? int bai ?= x/10/10%10;

? ? ? ? int qian = x/10/10/10%10;

? ? ? ? int wan = x/10/10/10/10%10;

? ? ? ? //按照要求進行判斷即可

? ? ? ? if((ge==wan) && (shi==qian) && (ge+shi+qian+wan==bai)) {

? ? ? ? ? ? System.out.println(x);

? ? ? ? }

? ? }

?

/*

題目:輸入兩個正整數m和n,求其最大公約數和最小公倍數。

比如:12和20的最大公約數是4,最小公倍數是60。

說明:break關鍵字的使用:一旦在循環中執行到break,就跳出循環

*/

import java.util.Scanner;

class ForTest{

? ?public static void main(String[] args){

? ?

? ? ? ?Scanner scan = new Scanner(System.in);

? ? ? ?System.out.println("請輸入第一個正整數:");

? ? ? ?int m = scan.nextInt();

? ? ? ?

? ? ? ?System.out.println("請輸入第二個正整數:");

? ? ? ?int n = scan.nextInt();

? ? ? ?

? ? ? ?//獲取最大公約數

? ? ? ?//1.獲取兩個數中的較小值

? ? ? ?int min = (m <= n)? m : n;

? ? ? ?//2.遍歷

? ? ? ?for(int i = min;i >= 1 ;i--){

? ? ? ? ? ?if(m % i == 0 && n % i == 0){

? ? ? ? ? ? ? ?System.out.println("最大公約數為:" + i);

? ? ? ? ? ? ? ?break;//一旦在循環中執行到break,就跳出循環

? ? ? ? ? ?}

? ? ? ?}

? ? ? ?

? ? ? ?//獲取最小公倍數

? ? ? ?//1.獲取兩個數中的較大值

? ? ? ?int max = (m >= n)? m : n;

? ? ? ?//2.遍歷

? ? ? ?for(int i = max;i <= m * n;i++){

? ? ? ? ? ?if(i % m == 0 && i % n == 0){

? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?System.out.println("最小公倍數:" + i);

? ? ? ? ? ? ? ?break;

? ? ? ? ? ?

? ? ? ? ? ?}

? ? ? ?}

? ? ? ?

? ?}

}

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

?

轉載于:https://www.cnblogs.com/Lucky-stars/p/11007680.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248744.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248744.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248744.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

LeetCode,第377場周賽,個人題解

目錄 100148.最小數字游戲 題目描述 思路分析 代碼詳解 100169.移除柵欄得到的正方形田地的最大面積 題目描述 思路分析 代碼詳解 100156.轉換字符串的最小成本I 題目描述 思路分析 代碼詳解 100158.轉換字符串的最小成本II 題目描述 思路分析 代碼詳解 100148.…

for each....in、for in、for of

一、一般的遍歷數組的方法: var array [1,2,3,4,5,6,7]; for (var i 0; i < array.length; i) { console.log(i,array[i]); } 二、用for in的方遍歷數組 for(let index in array) { console.log(index,array[index]); }; 三、forEach array.forEach(v>{ cons…

Vue cli3.0創建Vue項目

創建Vue項目 在要創建項目的文件夾下面打開Powershell窗口 輸入命令 vue create 項目名稱 選擇第二項 回車后 選擇是否使用歷史路由 no 回車 選擇 Less 回車 選擇第三個 回車 選擇第一個 回車 選擇第一個 回車 是否保存模板 選擇no 完成啦 完成

文件內容的輸出io

package bbb; import java.io.*; public class ccc {public static void main(String[]args) throws IOException{ File filenew File("d:/1data.txt"); FileOutputStream outnew FileOutputStream(file); byte buy[]"12345abcdef#%&*軟件工程".getByt…

看完后完全了解 Vue 2.0 和 Vue 3.0 的區別

1.數據的雙向綁定 Vue2.0使用Object.defineProperty 原理&#xff1a;通過使用 Object.defineProperty 來劫持對象屬性的 geter 和 seter 操作&#xff0c;當數據發生改變發出通知 代碼&#xff1a; 1 <!DOCTYPE html>2 <html lang"en">3 <head>4…

channels2.X 學習筆記

- No module named asgiref.sync 報錯解決&#xff1a; # 報錯原因&#xff1a; """ django版本過低&#xff0c; 卸載最新版本的 channels 使用2.x 版本的 """ pip3 uninstall channels - 安裝&#xff1a; """ Django 1.11.15 …

風格遷移學習筆記

風格遷移大作業 學習規劃 跑通一份代碼&#xff01;&#xff01;&#xff01;&#xff08;done&#xff09;對照代碼、Blog和論文理解相應的算法過程規劃下一步&#xff0c;修改代碼&#xff08;done&#xff09;&#xff0c;實現預計功能&#xff08;done&#xff09;調參&…

Netty源碼分析第5章(ByteBuf)----第5節: directArena分配緩沖區概述

Netty源碼分析第5章(ByteBuf)---->第5節: directArena分配緩沖區概述 Netty源碼分析第五章: ByteBuf 第五節: directArena分配緩沖區概述 上一小節簡單分析了PooledByteBufAllocator中, 線程局部緩存和arean的相關邏輯, 這一小節簡單分析下directArena分配緩沖區的相關過程 …

uni-app(從零開始)

uni-app&#xff08;從零開始&#xff09; uni-app 是什么&#xff1f; uniapp 就是使用Vue.js技術開發所有前端框架的跨端框架uniapp 就是可以將一套代碼 發布到多個平臺 uniapp 和 Vue 的關系&#xff1f; uniapp是基于vue進行開發&#xff0c;繼承了Vue的特性和語法在開…

Remote desktop manager共享賬號

因為多個遠程機器&#xff0c;是會用了域賬號進行登錄的。而域賬號的密碼&#xff0c;三個月之后&#xff0c;密碼強制過期 添加一個新的entry&#xff0c;類型是Credential Entry&#xff0c;然后選擇用戶名/密碼 在remote desktop編輯的頁面&#xff0c;Credentials選擇Crede…

bzoj4403:序列統計

我好傻啊 題目 先來看看長度只能為\(n\)的情況 那么答案非常顯然是\(\binom{mn-1}{n}\) 其中\(mR-L1\) 因為我們要構造一個非降序列&#xff0c;顯然可能一個數會被選擇多次&#xff0c;組合非常不好做&#xff0c;于是我們可以把每一個數的下標加上其對應的下標那么現在的值域…

Mui常用的方法

中對話框 語法&#xff1a;mui.confirm 用法 mui.confirm("確認要切換角色&#xff1f;", "提示", btnArray, function(e) {if(e.index 1) {} else {}});組件名作用alert警告框confirm確認框prompt輸入對話框toast消息提示框&#xff08;自動消失&#x…

sudo: pip:找不到命令

https://blog.csdn.net/fcku_88/article/details/84191288轉載于:https://www.cnblogs.com/xxswkl/p/11012709.html

java ListMapString,Object遍歷的方法

java List<Map<String,Object>遍歷的方法 public class Test {public static void main(String[] args) {List<Map<String, Object>> listMaps new ArrayList<Map<String, Object>>();Map<String, Object> map1 new HashMap<Strin…

vue如何更換網頁標簽的logo

Vue2 版本更換圖標 在我們項目的根目錄下面去添加或者替換 favicon.icon文件 找到我們的 build 文件夾下面的這兩個文件 進行如下配置 favicon: resolveApp(’./favicon.ico’) 刷新后發現并沒有什么效果 莫慌 最后一步 重啟項目 改變端口 如果重啟后還沒有起到作用的話就…

Java并發編程的藝術(十)——Java中的鎖(5)

1. LockSupport工具 1.1 LockSupport的作用 當需要阻塞或喚醒一個線程的時候&#xff0c;都會使用LockSupport工具類來完成相應工作。LockSupport定義了一組公共的靜態方法&#xff0c;這些方法提供了做基本的線程阻塞和喚醒功能。 1.2 LockSupport提供的阻塞和喚醒方法 方法描…

運動-模擬返回頂部

第一步&#xff1a;獲取底部的那個按鈕對象&#xff0c;默認的情況下那個按鈕對象是不可見的。可見的條件的是滾輪距離頂部有距離。 var oBtndocument.getElementById(btn1); 第二步&#xff1a;添加滾輪事件。 (1). 獲取滾輪距離頂部的距離。如果距離大于0&#xff0c;就將按鈕…

《JavaScript高級程序設計》筆記總結

在北京上班的我每天在上下班路上的時間總共是兩個半小時&#xff0c;為了充實這兩個多小時的時間&#xff0c;我便花了銀子換得了下面這個寶貝 本書內容&#xff08;引用書中前言&#xff09; 本書提供了JavaScript開發人員必須掌握的內容&#xff0c;全面涵蓋了JavaScript的…

Task執行多次

項目中&#xff0c;曾經出現過啟動時數據庫連接數瞬間增大&#xff0c;當時并沒有注意該問題。 后期&#xff0c;由于Task任務多次執行&#xff0c;才著手查看這個問題&#xff0c;經排查&#xff0c;由于tomcat中webapp配置多次&#xff0c;導致webapp被掃描多次&#xff08;配…

ES6 的新特性總結

ES6 的新特性總結 關于聲明變量 由 var 變成 let 和 const 區別&#xff1a; var聲明的變量會掛載到window上&#xff0c;let和const聲明的變量不會var聲明的變量存在變量提升&#xff0c;而let和const聲明的變量不存在變量提升let和const聲明的變量形成塊級作用域在同一作…