最近覺得需要來學一下寫程式 感覺這個教學真的蠻詳細的!!! 以下是我的方法 import java.util.Scanner; public class class01 { public static void main(String[] args) { while(true) { int i = (int)(Math.random()*1100)+(-100); Scanner scanner = new Scanner(System.in); while(true) { int guess = scanner.nextInt();
import java.util.Scanner; public class Hey3 { public static void main(String[] args) { String word = "let guess the number!"; System.out.println(word);
while(true) { float number = (float)Math.random(); number *= 1000.0f;
int chosen = (int)number; int number1 = 1;
Scanner scanner = new Scanner(System.in);
while(number1 == 1) { int guess = scanner.nextInt();
import java.util.*; public class Test{ public static void main (String[]args){ float num = (float)Math.random(); num = num * 1000.0f; //System.out.println(num); int num2 = (int)num; Scanner scanner = new Scanner(System.in); int a = 0; while(num2 !=a){ int ans = scanner.nextInt(); a = ans; if(num2 < ans){ System.out.println("太大了"); } else if(num2 >ans){ System.out.println("太小了"); } else{ System.out.println("good"); } } } }
老師,及各位學長姐請問一下這樣的程式碼哪裡有錯嗎? 怎麼我在eclipse上面都無法運行呢?可是...系統並沒有告訴我哪裡有錯誤呀......... 求救.. 以下是這次教學中跟老師學習的寫法可是.... . import java.util.Scanner; public class go { public static void main(String[] args){ float a1 =(float) Math.random(); a1*= 1000.0f; int a2 = (int)a1; Scanner scanner = new Scanner(System.in); String z = "Let's play a game to guess number!"; String x = "It's too large.....keep guess~"; String c ="It's too small....come on ~ Don't give up!"; String v = "Good job!it's correct answer!!"; while(true){ int g = scanner.nextInt(); System.out.println(z); if(g>a2){ System.out.println(x); } else if(g
@TCC The Developer
您過往的留言有提及:只要在猜中時的條件判斷區塊內產生新的亂數並乘以1000後指定給原本的區域變數應是可行的~
我在最後猜中的部份加了(我是以乘100來做)。
else
{
System.out.println("Bingo");
number2 *= 100;
}
我遇到的問題是
1.當我把number2列印出來的話 在乘上100 那範圍就不是原本1-100的範圍(假設答案是20*100 =2000了)
2.要如何把這裏面的值指定給原本的區域變數
感謝您的教學,很有幫助。
您好, 個人非常喜歡您的JAVA影音教學. #1 ~ #10都已聽完成, 何時才有新的JAVA進階影音教學檔案上架? 真的很迫不及待的想要持續學習您的教學內容, 感謝您!!
Garry Yu 您好! 非常高興您喜歡我的教學! 初次學習拍攝教學片仍有許多未盡之處還請日後多多海涵。目前固定會在每周的禮拜二到四之間上傳一部~
最近覺得需要來學一下寫程式
感覺這個教學真的蠻詳細的!!!
以下是我的方法
import java.util.Scanner;
public class class01
{
public static void main(String[] args)
{
while(true)
{
int i = (int)(Math.random()*1100)+(-100);
Scanner scanner = new Scanner(System.in);
while(true)
{
int guess = scanner.nextInt();
if(i < guess)
{
System.out.println("too large!!");
}
else if(i > guess)
{
System.out.println("too small!!");
}
else
{
System.out.println("BINGO!!");break;
}
}
}
}
}
謝謝你太棒了,讓我有前進的動力
视频真的非常用心,非常感谢主播的分享。
+好好先生 感謝您的觀看!
如果要限制完的次數,剛好可以運用之前所教的1加到10的方法!!
這樣可以嘛ww
import java.util.Scanner;
public class GuessANumber
{
public static void main(String[] args )
{
System.out.println("Guess a number!!1~100");
Scanner scanner = new Scanner(System.in);
float number = (float)Math.random();
number *= 100.0f;
int number2 = (int)number;
boolean type = true;
while(type)
{
int guess = scanner.nextInt();
if(guess == 0)
{
System.out.println("OK, you don,t want to guess...");
type = false;
}
else if(guess > number2)
{
System.out.println("too large!!");
}
else if(guess < number2)
{
System.out.println("too small!!");
}
else
{
System.out.println("yes, it's "+number2+", try again!");
number = (float)Math.random();
number *= 100.0f;
number2 = (int)number;
}
}
}
}
可以控制亂數的範圍嗎?
老師很力害
好棒 教得很得體
老師的聲音好好聽
真的非常感謝您的用心!這些影片讓我有信心繼續學習。
另外想問一下最後提到的兩個問題,
第一個是 猜到就停止執行,我用break;
第二個是 猜到之後要產生新的亂數繼續猜,
第二個可以提示一下嗎?
直接產生新的亂數指定到原本的區域變數為何不行呢?
+盧奕叡 可以的喔,只要在猜中時的條件判斷區塊內產生新的亂數並乘以1000後指定給原本的區域變數應是可行的~
非常好的教學!!謝謝分享!!
老師我出運了~~~~~
我搞了一整晚 重崩潰到在崩潰 最後再跟一個妹子聊天的當下瞬間想到辦法
1.如何使while回圈內的數字跑完自動結束 答案是在最後的else的System下一行多加上break;
2.如何使while迴圈跑完後自動執行新的一輪遊戲 答案很簡單我們往往都複雜化了 只要在產生亂數上方再『多加上一個while(true)』,這邊要切記注意自己的{ }是否有打好,別少也別多
老师都还没教这个break,你使用break就没意思了
老师是说叫我们想老师以前教的方法来让他停
你好^.^!很喜歡你的教學方式,原本覺得學習程式是一件不太可能的事情,看過你的教學影片後讓我慢慢覺得或許我也有可能學得會^.^!
然後你在後面有提到說讓程式可以在找到答案後可以END跳出程式
我用的方法是在while裡面加一條if break;不知道這個方法算不算是正確的方法,因為這是我從C語言的書上翻來的^.^!
吳欣翰 很高興您踏入了程式設計這塊擁有無限可能的領域!
另外,您使用的方法是正確的!程式沒有對錯,只有能不能達成目的,以及達成目時使用的手段的優劣而已。Java有很多語法跟C&C++雷同,能自己找到break的語法相當值得稱讚
+吳欣翰 cool
请问这样写对吗
import java.util.Scanner;
public class Hey
{
public static void main(String[] args)
{
float number = (float)Math.random();
number *= 1000.0f;
int number2 = (int)number;
Scanner game = new Scanner(System.in);
while(true)
{
int guess = game.nextInt();
if(guess < number2)
{
System.out.println("too small!");
}
else if(guess > number2)
{
System.out.println("too big!");
}
else
{
System.out.println("good!");break;
}
}
}
}
只會停住可是怎樣才重新開始是在While 弄一個迴圈嗎?
TCC Th
寫了一樣的程式 但是怎麼執行亂數都只能是0 @@ 求解MO口OM
import java.util.Scanner;
public class TEST2
{
public static void main (String[]args)
{
float number = (float)Math.random();
number *= 1000.0f;
int number2 = (int)number;
Scanner scanner = new Scanner(System.in);
while(true)
{
int guess = scanner.nextInt();
if (guess > number2)
{
System.out.println("too large!");
}
else if (guess < number2)
{
System.out.println("too small!");
}
else
{
System.out.println("Bingo!");
break;
}
}
}
}
老師請問你這個亂數的範圍是0~1000還是0~999?
因為您在影片中有提到Math.random是0~1之間的數,是有小數點的,如果Math.random不包含1
那麼這個亂數的範圍就是0~999囉?
X〉0 X〈1
是0-999沒錯 random只會小於1 乘1000再取整也就不可能會是四位數
請問輸入的質不小心是中文字的話
要怎麼修改?
((打完之後我試了一下英文和中文...結果出現錯誤
好棒啊,支持~
大大您好,請問
若要在Binggo後就結束,我能在while()內輸入quess!=number2嗎
這樣只要一等於就不成立,就不會跑了不是嗎
可是我試過了,它顯示錯誤,請問這原因是??
+陳品翰 注意guess是宣告在while迴圈內,這樣這個變數可以使用的範圍只有在while的大括號裡,若要能在while的小括號中使用guess則guess必須宣告在while迴圈外。
請參考
ruclips.net/video/huiuPYsuEz4/видео.html
不好意思 請教一下!! 在研究 遊戲結束後 重新開始 找到了一個語法叫continue 但為甚麼 重跑後 電腦的數字會跟前一輪一樣呢??
import java.util.Scanner;
public class hey
{
public static void main(String[] args)
{
float computernumber = (float)Math.random();
computernumber *=100.0f;
while(true)
{
int computernumber2 = (int)computernumber;
Scanner scanner = new Scanner(System.in);
int clientguess = scanner.nextInt();
if(clientguess > computernumber2)
{
System.out.println("大");
}
else if(clientguess < computernumber2)
{
System.out.println("小");
}
else
{
System.out.println("答對");
}
if(clientguess == computernumber2)
{
continue;
}
}
}
這邊是我的改法!! 新手 麻煩各位指導!!!
您好!我在執行時,在第12行Scanner scanner = new Scanner(System.in);出現錯誤,跟您教學畫面上的錯誤符號一樣,但我執行後卻跑不出結果畫面(沒辦法讓我輸入東西)。只是告訴我有一個錯誤~~~我該如何??謝謝您
+鬼斬索隆
我剛剛另外設一個檔名但程式一模一樣,結果OK了!會是檔名用MATH01的關係嗎?但是MATH01也不是JAVA的保留字~~
+索隆琦棟 我記得是Scanner 需要另外加一行 版主打完有個小動作 讓第一行多了 import 的東西 沒做那個我記得Scanner沒辦法正確成立 #有誤麻煩糾正QQ
猜對重新隨機數字重新開始
import java.util.Scanner;
public class HEY
{
public static void main(String[] args)
{
while(true)
{
float number=(float)Math.random();
number*=1000f;
int number2 = (int)number;
Scanner scanner = new Scanner(System.in);
while(true)
{
int player = scanner.nextInt();
if(player>number2)
{
System.out.println("too large");
}
else if(player
把那個else bingo放到while迴圈外面 就可以結束了....
在BINGo下面家個break;,就可以跳出迴圈了.
+居然居 沒錯,這是個很簡潔的方法!
+D01phiN 大大假如我在產生亂數之前在家個while(true)迴圈,好像就可以猜到後一職再玩下去,是這樣嗎?((剛剛完猜到後他會變數字讓你繼續玩
還有一件事就是break他的用法與定義
他會跳出幾層迴圈??,或是其他定義,求大大賜教
(順便請教continue用法)
+居然居 我有試過您的方式 我發現比如電腦預設的答案是8 我們設定她只能重1~10;
他可能在7的時候會說太大
您的不會麼
請問我寫成這樣,有顯示錯誤,但是能正常運作,這樣是正常嗎?
另外顯示bingo後還能繼續猜,是不是代表程式沒結束?
import java.util.Scanner;
public class guess
{
public static void main (String[] arge)
{
float number = (float)Math.random(); //產生0~1的任一小數
number *= 1000.0f;
int number2 = (int)number;
Scanner scanner = new Scanner(System.in);
while (scanner > number2)
{
int guess = scanner.nextInt();
if(guess > number2)
{
System.out.println("too large.");
}
else
{
while (scanner < number2)
{
if(guess < number2)
{
System.out.println("too small.");
}
else{
System.out.println("Bengo");}}}}}}
bingo 那行 下面再+1行 break ; 應該就可以停了
再想想停了之後該怎麼在猜一次新的一輪看看
請教一下, 為何把第16行 int guess = scan.nextInt(); 搬到while ()迴圈外(13行),會變成無窮迴圈?
+基福 這是一個很好的問題,因為nextInt()這個東西的功能便是在讀取使用者的輸入,在使用者還沒按下enter前程式就會一直卡在scan.nextInt()這裡,若將此行移到迴圈外,在使用者輸入完後程式便永遠沒有停止的點了。
+D01phiN 懂了. 謝謝 !
如果用for迴圈的範圍來用Math.random()不重複的話
要怎麼寫呢
+卓奕昌 請問您的意思是如何使用for迴圈替代掉教學中使用的while迴圈嗎?
我想製作撲克牌 用FOR迴圈 WHILE迴圈也想過 差在碰到重複到的話 該如何用contunie燙過
+卓奕昌 是假設撲克牌有52張,現在想隨機抽牌,但已經抽到的牌不可再次抽到是嗎?
+D01phiN 是的
+卓奕昌 若您會使用陣列的話,最簡單的方式為使用另一個boolean陣列來記錄不同數字是否已經出現過,若出現過則紀錄為true,反之為false;每次抽牌都先確認該數字是否出現過,若已出現則直接在抽下一張牌,直到該數字未抽出過為止。
加function break 就會停
跳出迴圈這是我的解法~
public static void main(String[] args)
{
float number = (float)Math.random();
number *= 1000.0f;
int number2 = (int)number;
int results = 1; //設一個變數,為了是要BINGO時跳出迴圈
Scanner scanner = new Scanner(System.in);
while(results == 1) //條件results==1時,進入while迴圈
{
int guess = scanner.nextInt();
if(guess > number2)
{
System.out.println("too large!");
}
else if (guess < number2)
{
System.out.println("too small!");
}
else
{
results++; //BINGO時results++,跳出迴圈
}
}
System.out.println("BINGO!!");
}
聰明喔~~~我竟然沒想到
import java.util.Scanner;
public class Hey2
{
public static void main(String[]args)
{
float number =(float)Math.random();
number *= 1000.0f;
int number2 =(int) number;
int result = 1;
Scanner scanner = new Scanner(System.in);
while(result == 1)
{
int guess = scanner.nextInt() ;
if(guess >number2)
{
System.out.println("big");
}
else
{
if(guess
参考了他的答案改良了一下,这个可以停止继续scanner写答案、
這個方法以後會常用,但這裡直接在bingo下一行寫Break;就可以跳出迴圈了。
怎麼用「wait」
要聽停止的話,可以把while 裡面改(! (guess == number))嗎? 我剛學所以不太懂”‘
你要自己去试阿
只要你的程序里面成功就可以了,不管什么方法。。。因为方法有很多很多
請教老師:Scanner scanner = new Scanner(System.in); System.in裡面的in不會變成藍色斜線。
try import Scanner
hover your mouse over "Scanner"
他寫說:錯誤: 找不到或無法載入主要類別 Hey
其實不太懂為什麼要多寫true,整個被執行的區塊裡都只是做比較就好,應該不用考慮到什麼東西的真假吧?
如果没有true,就没办法一直执行,需要自己按新的执行,这样电脑默认的数值就改变了
永远没办法binggo
還是有可能玩家第一次就猜到數字吧,只是機率上相對高低的分別而已
是不是要關掃描器@@
import java.util.Scanner;
public class Hey3
{
public static void main(String[] args)
{
String word = "let guess the number!";
System.out.println(word);
while(true)
{
float number = (float)Math.random();
number *= 1000.0f;
int chosen = (int)number;
int number1 = 1;
Scanner scanner = new Scanner(System.in);
while(number1 == 1)
{
int guess = scanner.nextInt();
if(guess > chosen)
{
System.out.println("too large!");
}
else if(guess < chosen)
{
System.out.println("too small!");
}
else
{
System.out.println("bingo!");
number1++;
}
}
}
}
}
您好,大大,我是一個JAVA的菜鳥
有個問題想問一問
如何可以在條件中寫一個範圍
例如if(3
+Lay Wong 有两个数或者一个范围的时候要用and或者or连接,and是这个( && ),or是这个( || ),举个例子就是if(a>6 || a6 && a
你好,我打了while(true)后执行为什么会出现
456
too large
too large
too large
too large
too large
.....不断地出现?
大概是你的while迴圈包在if外面但沒有包到輸入,這樣他會一直用你第一次的數字來判斷,就不會停止。
import java.util.*;
public class Test{
public static void main (String[]args){
float num = (float)Math.random();
num = num * 1000.0f;
//System.out.println(num);
int num2 = (int)num;
Scanner scanner = new Scanner(System.in);
int a = 0;
while(num2 !=a){
int ans = scanner.nextInt();
a = ans;
if(num2 < ans){
System.out.println("太大了");
}
else if(num2 >ans){
System.out.println("太小了");
}
else{
System.out.println("good");
}
}
}
}
Break
想请问tcc 为什么我在bingo下一行加了break;却还是没有停止的?,不好意思,我是看你的影片才接触java编程的新手
你加break;之後只是跳出迴圈,但是while的()裡面一樣還是true,只要還是true,他在怎麼樣都會執行,你可以使用這樣
boolean start = true;
while(start == true){
int guess = scanner.nextInt();
if(guess > number2){
System.out.prinln("too large")
}else if(guess < number2){
System.out.prinln("too small")
} else {
System.out.println("Bingo")
start = false;
}
System.out.print("Game Over");
}
這樣執行到Bingo的時候,就會把start改成false那迴圈就不會繼續執行
我else if 和else一直說那是錯的
+居南 甚麼意思呢?
D01phiN 沒事我多打分號
else 不要打 ;
為何常常無法執行寫完的程式?
你的经验不足
請問我要如何指定這個亂數的值呢? 例如我要0到20
應該就是把number *= 1000.0f; 改成number *= 20.0f; 就可以了吧
@@uw5186 是的,如果是要定在-0-20之間,就是做number *= 20.0f,即可
老師,及各位學長姐請問一下這樣的程式碼哪裡有錯嗎?
怎麼我在eclipse上面都無法運行呢?可是...系統並沒有告訴我哪裡有錯誤呀.........
求救..
以下是這次教學中跟老師學習的寫法可是....
.
import java.util.Scanner;
public class go {
public static void main(String[] args){
float a1 =(float) Math.random();
a1*= 1000.0f;
int a2 = (int)a1;
Scanner scanner = new Scanner(System.in);
String z = "Let's play a game to guess number!";
String x = "It's too large.....keep guess~";
String c ="It's too small....come on ~ Don't give up!";
String v = "Good job!it's correct answer!!";
while(true){
int g = scanner.nextInt();
System.out.println(z);
if(g>a2){
System.out.println(x);
}
else if(g
多了兩個 } }
請問如果要讓遊戲自動重新開始 需要怎麼寫呢?
請問第七行為什麼不能直接寫成 int number = (int)Math.ramdom();
這樣會變零
因為Math.random的範圍是0~1,但不等於1,所以是0.154616等等,double轉int就只取整數,所以會變成0,如果你要求1~9就*10,1~100就*100+1,以此類推