Как используют цикл for в java

Цикл while

Цикл while — это оператор потока управления, который позволяет выполнять код повторно на основе заданного булевского условия.


Python

while (condition){ statements; }

1 2 3

while(condition){

statements;

}

Выражение (условие) в цикле while вычисляется, и если выражение (условие) истинно, выполняется код внутри блока. Это повторяется до тех пор, пока выражение (условие) не станет ложным. Выражение (условие) должно быть обновлено во время повторений, иначе программа никогда не «вырвет» из while и не приведет к бесконечному циклу.

Пример:

Python

class TestClass { public static void main (String[] args) { int cnt = 1; while (cnt < = 5) { System.out.println(«The value of cnt is : » + cnt); cnt = cnt + 1; } } }

1 2 3 4 5 6 7 8 9 10 11 12

classTestClass

{

public static void main(Stringargs)

{

intcnt=1;

while(cnt<=5)

{

System.out.println(«The value of cnt is : «+cnt);

cnt=cnt+1;

}

}

}

Вывод:

Python

The value of cnt is : 1 The value of cnt is : 2 The value of cnt is : 3 The value of cnt is : 4 The value of cnt is : 5

1 2 3 4 5

The value of cnt is1

The value of cnt is2

The value of cnt is3

The value of cnt is4

The value of cnt is5

В вышеуказанной программе цикл будет выполнять блок кода 5 раз. В первый раз значение cnt равно единице, то оно удовлетворяет условию cnt Цикл do while

Цикл do-while похож на оператор while, но цикл do-while, сначала будет выполняться тело цикла, затем вычисляется условие. Если условие истинно, тело цикла будет выполнено. В противном случае цикл будет завершен. Преимущество цикла do … while состоит в том, что он выполняет блок кода хотя бы один раз, а затем повторно выполняет блок в зависимости от условия.

Python

do { statements; } while (condition);

1 2 3

do{

statements;

}while(condition);

Пример:

Python

class TestClass { public static void main (String[] args) { boolean enter=false; do { System.out.println(«Enter in do..while loop»); }while (enter); } }

1 2 3 4 5 6 7 8 9 10 11

classTestClass

{

public static void main(Stringargs)

{

boolean enter=false;

do

{

System.out.println(«Enter in do..while loop»);

}while(enter);

}

}

В приведенном выше коде boolean введите = false ;. Даже значение ввода — false, блок кода выполняется хотя бы один раз. Таким образом, сообщение отображается один раз. Если вы дадите условие циклу while, он выйдет, не показывая сообщение, потому что условие ложно и никогда не входит в блок кода.

Python

boolean enter=false; while (enter){ System.out.println(«Enter in do..while loop»); }

1 2 3 4

boolean enter=false;

while(enter){

System.out.println(«Enter in do..while loop»);

}

В приведенном выше случае условие является ложным (enter = false), и цикл никогда не выполняется.

Разница между do..while и while заключается в том, что do..while цикл оценивает свое условие в последнем из циклов вместо первого (во втором цикле условие сначала оценивает). Поэтому инструкции внутри блока do всегда выполняются хотя бы один раз.

Working with forEach

4.1. Iterating Over a Collection

Any iterable of type Collection – list, set, queue etc. have the same syntax for using forEach.

Therefore, as we have already seen, to iterate elements of a list:

Similarly for a set:

Or let’s say for a Queue which is also a Collection:

4.2. Iterating Over a Map – Using Map’s forEach

Maps are not Iterable, but, they do provide their own variant of forEach that accepts a BiConsumer. 

A BiConsumer was introduced instead of Consumer in Iterable’s forEach so that an action can be performed on both the key and value of a Map simultaneously.

Let’s create a Map having entries:

Next, let’s iterate over namesMap using Map’s forEach:

As we can see here, we’ve used a BiConsumer:

to iterate over the entries of the Map.

4.3. Iterating Over a Map – by Iterating entrySet

We can also iterate the EntrySet of a Map using Iterable’s forEach.


Since the entries of a Map are stored in a Set called EntrySet, we can iterate that using a forEach:

4.3 Наносекунды

Современные компьютеры гораздо быстрее, чем во времена создания Java. Поэтому паузы в 1 миллисекунду может быть уже недостаточно.

Допустим мы осуществляем какое-то очень быстрое действие и хотим выполнять его 2000 раз в секунду. Как нам сделать паузу в пол миллисекунды?

А вот для этого есть еще одна модификация метода :

Данный метод усыпляет программу на указанное время миллисекунд и наносекунд.

Наносекунды — это 1 миллионная от миллисекунд. Поэтому пауза в полторы миллисекунды будет выглядеть так:

Ну а если вы хотите паузу в миллисекунды, вам нужно будет написать так:

Возможно, прямо сейчас вы этот метод использовать в своих программах не будете. Но лучше знать, что он есть и не использовать, чем нуждаться в нем и не знать, что он есть.

Оператор switch

Рассмотрим следующий кусок кода:

Java

if (mode == 0) { // operators for mode 0 } else if (mode == 1) { // operators for mode 1 } else if (mode == 2) { // operators for mode 2 } else { // operators for other mode. }

1 2 3 4 5 6 7 8 9

if(mode==){

// operators for mode 0

}elseif(mode==1){

// operators for mode 1

}elseif(mode==2){

// operators for mode 2

}else{

// operators for other mode.

}

В куске кода, приведённом выше, проверяется значение переменной mode. Для значений 0, 1 и 2 предусмотрены отдельные блоки кода, и ещё один блок кода предусмотрен для всех остальных значений. Оператор switch  делает то же самое, но делает код более наглядным:

Java

switch (mode) { case 0: // operators for mode 0 break; case 1: // operators for mode 1 break; case 2: // operators for mode 2 break; default: // operators for other mode break; }

1 2 3 4 5 6 7 8 9 10 11 12 13 14

switch(mode){

case

// operators for mode 0

break;

case1

// operators for mode 1

break;

case2

// operators for mode 2

break;

default

// operators for other mode

break;

}

Этот кусок кода с оператором switch  делает абсолютно то же самое, что и кусок кода с if, рассмотренный до этого, но рекомендуется использовать вариант со switch, так как он более нагляден.

Оператор switch  работает в следующем порядке:

  1. Вычисляется выражение в скобках (в данном примере оно состоит просто из переменной mode )
  2. Полученное значение проверяется подряд со значениями в case , и выполняется тот блок операторов, который относится к case  со значением, совпадающим со значением выражения.
  3. Если ни одно из значений не совпало, то выполняется блок default.
  4. По ключевому слову break  выполнение блока внутри case  или default  завершается и управление передаётся на следующую инструкцию за блоком switch.

С помощью if-then  и if-then-else  можно проверять любые условия, но с помощью switch  можно проверять только значения выражений типа byte , short , char , int , перечисления (будет описано позднее), String (начиная с Java SE 7), а также классы java.lang.Byte , java.lang.Short , java.langCharacter , java.lang.Integer. Проверяемые значения в case  обязательно должны быть константными литералами. Если значение выражения в switch  равно null, то возникает java.lang.NullPointerException. Нагляднее всего switch  выглядит именно с перечислениями.

Ключевое слово break  не обязательно. В случае его отсутствия по завершении выполнения блока операторов внутри одного case  выполняются операторы следующего за ним case. Это позволяет использовать один блок операторов для нескольких значений case:

Java

switch (mode) { case -1: System.out.println(«mode -1»); break; case 0: System.out.println(«mode 0»); case 1: case 2: System.out.println(«mode 0 or 1 or 2»); break; case 3: System.out.println(«mode 2»); break; default: System.out.println(«mode default»); break; }

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17

switch(mode){

case-1

System.out.println(«mode -1»);

break;

case

System.out.println(«mode 0»);

case1

case2

System.out.println(«mode 0 or 1 or 2»);

break;

case3

System.out.println(«mode 2»);

break;

default

System.out.println(«mode default»);

break;

}

Если mode  равно 0, то код выше выведет в консоль:

mode 0 mode 0 or 1 or 2

1 2

mode 0 mode 0 or 1 or 2

Если mode  равно 1, то код выше выведет в консоль:

mode 0 or 1 or 2

1 mode 0 or 1 or 2

Если mode  равно 2, то код выше выведет в консоль:

mode 0 or 1 or 2

1 mode 0 or 1 or 2

Блок default  не обязательно указывать в конце блока switch. Он может стоять и в начале, и в середине (но рекомендуется всегда писать его последним, так получается гораздо нагляднее, потому что он выполняется в том случае, если ни один из case -ов не подошёл):

Java

switch (mode) { case 0: System.out.println(«mode 0»); break; default: System.out.println(«mode default»); break; case 1: System.out.println(«mode 1»); break; case 2: System.out.println(«mode 2»); break; }

1 2 3 4 5 6 7 8 9 10 11 12 13 14

switch(mode){

case

System.out.println(«mode 0»);

break;

default

System.out.println(«mode default»);

break;

case1

System.out.println(«mode 1»);

break;

case2

System.out.println(«mode 2»);

break;

}

Можно даже вообще не указывать блок default:

Java

switch (mode) { case 0: System.out.println(«mode 0»); break; case 1: System.out.println(«mode 1»); break; case 2: System.out.println(«mode 2»); break; }

1 2 3 4 5 6 7 8 9 10 11

switch(mode){

case

System.out.println(«mode 0»);

break;

case1

System.out.println(«mode 1»);

break;

case2

System.out.println(«mode 2»);

break;

}

Условные конструкции

Последнее обновление: 17.04.2018

Одним из фундаментальных элементов многих языков программирования являются условные конструкции. Данные конструкции позволяют направить работу программы по одному из путей в зависимости от определенных условий.

В языке Java используются следующие условные конструкции: и

Конструкция if/else

Выражение if/else проверяет истинность некоторого условия и в зависимости от результатов проверки выполняет определенный код:

int num1 = 6;
int num2 = 4;
if(num1>num2){
    System.out.println("Первое число больше второго");
}

После ключевого слова ставится условие. И если это условие выполняется, то срабатывает код, который помещен в далее в блоке if после фигурных скобок. В качестве условий выступает операция сравнения двух чисел.

Так как, в данном случае первое число больше второго, то выражение истинно и возвращает значение . Следовательно, управление переходит в блок кода после фигурных скобок и начинает выполнять содержащиеся там инструкции, а конкретно метод . Если бы первое число оказалось бы меньше второго или равно ему, то инструкции в блоке if не выполнялись бы.

Но что, если мы захотим, чтобы при несоблюдении условия также выполнялись какие-либо действия? В этом случае мы можем добавить блок :

int num1 = 6;
int num2 = 4;
if(num1>num2){
    System.out.println("Первое число больше второго");
}
else{
    System.out.println("Первое число меньше второго");
}

Но при сравнении чисел мы можем насчитать три состояния: первое число больше второго, первое число меньше второго и числа равны. С помощью выражения , мы можем обрабатывать дополнительные условия:

int num1 = 6;
int num2 = 8;
if(num1>num2){
    System.out.println("Первое число больше второго");
}
else if(num1<num2){
    System.out.println("Первое число меньше второго");
}
else{
    System.out.println("Числа равны");
}

Также мы можем соединить сразу несколько условий, используя логические операторы:

int num1 = 8;
int num2 = 6;
if(num1 > num2 && num1>7){
	System.out.println("Первое число больше второго и больше 7");
}

Здесь блок if будет выполняться, если равно и одновременно равно .

Конструкция switch

Конструкция switch/case аналогична конструкции , так как позволяет обработать сразу несколько условий:

int num = 8;
switch(num){
            
    case 1: 
        System.out.println("число равно 1");
        break;
    case 8: 
        System.out.println("число равно 8");
        num++;
        break;
    case 9: 
        System.out.println("число равно 9");
        break;
    default:
        System.out.println("число не равно 1, 8, 9");
}

После ключевого слова switch в скобках идет сравниваемое выражение. Значение этого выражения последовательно сравнивается со значениями, помещенными после операторов сase. И если совпадение найдено, то будет выполняет соответствующий блок сase.

В конце блока сase ставится оператор break, чтобы избежать выполнения других блоков. Например, если бы убрали оператор в следующем случае:

case 8: 
    System.out.println("число равно 8");
    num++;
case 9: 
    System.out.println("число равно 9");
    break;

то выполнился бы блок , (поскольку переменная num равна 8). Но так как в этом блоке оператор break отсутствует, то начал бы выполняться блок .

Если мы хотим также обработать ситуацию, когда совпадения не будет найдено, то можно добавить блок default, как в примере выше. Хотя блок default необязателен.

Также мы можем определить одно действие сразу для нескольких блоков case подряд:

int num = 3;
int output = 0;
switch(num){
	
	case 1: 
		output = 3;
		break;
	case 2: 
	case 3: 
	case 4: 
		output = 6;
		break;
	case 5: 
		output = 12;
		break;
	default:
		output = 24;
}
System.out.println(output);

Тернарная операция

Тернарную операция имеет следующий синтаксис: . Таким образом, в этой операции участвуют сразу три операнда. В зависимости от условия тернарная операция возвращает второй или третий операнд: если условие равно , то возвращается второй операнд; если условие равно , то третий. Например:

int x=3;
int y=2;
int z = x<y? (x+y) : (x-y);
System.out.println(z);

Здесь результатом тернарной операции является переменная z. Сначала проверяется условие . И если оно соблюдается, то z будет равно второму операнду — (x+y), иначе z будет равно третьему операнду.

НазадВперед

Страдания из-за приведения типов

До сих пор при работе с коллекциями вы видели, что используется с переменными встроенного типа, например

Это хорошо, но при этом не полностью используется преимущество еще одной важной функциональной возможности Tiger: родовые типы (generics) (иногда называемые параметризованными типами). Я оставлю подробное рассмотрение родовых типов для следующей статьи по предмету на developerWorks, но они делают цикл еще более мощным


Вспомните, что декларативная часть оператора создает переменную с типом каждого элемента коллекции, по которой ведется итерация. Для массивов все было очень точно, поскольку массивы строго типизированы может содержать только , в цикле нет приведения типов. То же самое возможно и при использовании типизированных списков. В листинге 12 показана пара простых параметризованных коллекций:

List<String> wordlist = new ArrayList<String>();
Set<String> wordset = new HashSet<String>();

Теперь ваш цикл может выкинуть старый Object и быть более специализированным. В листинге 13 это показано:

for (String word : wordlist) {
  System.out.print(word + " ");
}

Более полный пример показан в листинге 14. В нем приведена программа из листинга 10, к которой добавлен параметризованный список и более специализированные циклы :

Листинг 14. Листинг 10 может быть переписан с использованием преимуществ родовых типов
package com.oreilly.tiger.ch07;

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class ForInDemo {

  public static void main(String[] args) {
  
    // Это коллекции для итерации
    List<String> wordlist = new ArrayList<String>();
    Set<String> wordset = new HashSet<String>();
    
    // Основной цикл, выполняющий итерацию по элементам массива
    //   Тело цикла исполняется один раз для каждого элемента args[].
    //   Каждый раз один элемент присваивается переменной word. 
    System.out.println("Assigning arguments to lists...");
    for (String word : args) {
      System.out.print(word + " ");
      wordlist.add(word);
      wordset.add(word);
    }
    
    System.out.println();
    
    // Итерация по элементам List 
    //   Поскольку списки упорядочены, эти слова должны появляться так же как и раньше
    System.out.println("Printing words from wordlist " +
      "(ordered, with duplicates)...");
    for (String word : wordlist) {
      System.out.print((String)word + " ");
    }
    
    System.out.println();
    
// Сделайте то же самое с Set. Циклы выглядят одинаково, но
//  из-за особенностей использования Set порядок слов утрачен и удалены двойники.
    System.out.println("Printing words from wordset " +
      "(unordered, no duplicates)...");
    for (String word : wordset) {
      System.out.print((String)word + " ");
    }
  }
}

Конечно же приведение типов не исчезает полностью в этих случаях. Однако вы перекладываете часть работы на компилятор (что более или менее и делают родовые типы, для тех кому интересны такие вещи). Во время компиляции все эти типы будут проверены, и вы получите ошибки, если они есть. Ведь если кто-либо еще может выполнять эту работу — это же для всех хорошо, не так ли?

Что это за E?

Если вы являетесь Java-ветераном, но новичком в Tiger, все ссылки на могут показаться вам непонятными. Это все связано с поддержкой родовых типов (generics), дающих возможность итератору работать с типизированными коллекциями — например, будет работать с это новой версией интерфейса Stay, настроенного для следующей (7 декабря) учебной статьи по родовым типам на developerWorks.

Java Quickstart

In Java, every application begins with a class name, and that class must match the filename.

Let’s create our first Java file, called MyClass.java, which can be done in any text editor (like Notepad).

The file should contain a «Hello World» message, which is written with the following code:

MyClass.java

Don’t worry if you don’t understand the code above — we will discuss it in detail in later chapters. For now, focus on how to run the code above.

Save the code in Notepad as «MyClass.java». Open Command Prompt (cmd.exe), navigate to the directory where you saved your file, and type «javac MyClass.java»:

C:\Users\Your Name>javac MyClass.java

This will compile your code. If there are no errors in the code, the command prompt will take you to the next line. Now, type «java MyClass» to run the file:

C:\Users\Your Name>java MyClass

The output should read:

Run example »

Congratulations! You have written and executed your first Java program.

Циклы в Java

Есть два вида циклов в Java, и .

For

Цикл  состоит из трех секций:

for (int i = 0; i < 3; i++) {}

1 for(inti=;i<3;i++){}

Первая секция выполняется один раз, когда мы входим в цикл.  В нашем примере здесь задается начальное значение переменной . Вторая секция проверяет логическое условие, если оно возвращает , выполняются операторы в цикле, если , выход из цикла. Вторая секция в первый раз запускается сразу после первой секции, и выполняется каждый раз, пока условие верно, вызывая третью секцию. Третья секция — заключительный оператор, его действие выполняется каждый раз при выполнении цикла. В нашем примере это инкремент, который при каждом выполнении увеличивает значение переменной на единицу.

Таким образом, цикл будет работать 3 раза. Вот порядок команд:

int i = 0; i < 3 // 0 < 3 = true // Inside of loop i++ // i is now 1 i < 3 // 1 < 3 = true // Inside of loop i++ // i is now 2 i < 3 // 2 < 3 = true // Inside of loop i++ // i is now 3 i < 3 // 3 < 3 = false // Loop is done…

1 2 3 4 5 6 7 8 9 10 11 12

inti=;

i<3// 0 < 3 = true

// Inside of loop

i++// i is now 1

i<3// 1 < 3 = true

// Inside of loop

i++// i is now 2

i<3// 2 < 3 = true

// Inside of loop

i++// i is now 3

i<3// 3 < 3 = false

// Loop is done…

Мы можем опустить первую и третью секции цикла (как бы странно это ни выглядело), и цикл все еще будет работать:

for (;i < 5;) {}

1 for(;i<5;){}

Для случаев, где нужно использовать цикл схожих повторяющихся действий, мы используем цикл

While

Синтаксис похож на предыдущий:

while (condition) {}

1 while(condition){}

Условие будет работать впервые при вводе и каждый раз, когда вызывается цикл. Если условие возвратит false, то цикл не будет работать. Если мы хотим, чтобы цикл всегда выполнял по крайней мере одно действие, мы можем использовать do-while:

do {

} while(condition);

1 2 3

do{

}while(condition);

Не забудьте точку с запятой в конце.

Foreach

Другая версия for, это foreach. Но в Java решили не добавлять новое ключевое слово each. Ключевое слово, которое мы используем, все еще for, но когда мы хотим выполнить действия над элементами массива, делаем так:

int[] arr = {2, 0, 1, 3}; for (int el : arr) { System.out.println(el); }

1 2 3 4

intarr={2,,1,3};

for(intelarr){

System.out.println(el);

}

Это была короткая версия, эквивалентная следующей записи:

int[] arr = {1, 9, 9, 5}; for (int i = 0; i < arr.length; i++) { int el = arr; System.out.println(el); }

1 2 3 4 5

intarr={1,9,9,5};

for(inti=;i<arr.length;i++){

intel=arri;

System.out.println(el);

}


Заметьте, что, если вы хотите использовать индекс элемента в цикле, Вы должны использовать более длинную версию и не можете использовать foreach.

break and continue

Эти два ключевых слова помогают нам управлять циклом из него. Оператор break останавливает цикл и переходит к оператору, следующему за ним:

int i; for (i = 0; i < 5; i++) { if (i >= 2) { break; } System.out.println(«Yuhu»); } System.out.println(i); // Output: // Yuhu // Yuhu // 2

1 2 3 4 5 6 7 8 9 10 11 12

inti;

for(i=;i<5;i++){

if(i>=2){

break;

}

System.out.println(«Yuhu»);

}

System.out.println(i);

// Output: // Yuhu // Yuhu // 2

Оператор continue остановит текущую итерацию и переместится в следующую. Заметьте, что в цикле for действие в третьей секции будет выполнено при этом.

int i; for (i = 0; i < 5; i++) { if (i >= 3) { break; } System.out.println(«Yuhu»); if (i >= 1) { continue; } System.out.println(«Tata»); } System.out.println(i); // Output // Yuhu // Tata // Yuhu // Yuhu // 3

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

inti;

for(i=;i<5;i++){

if(i>=3){

break;

}

System.out.println(«Yuhu»);

if(i>=1){

continue;

}

System.out.println(«Tata»);

}

System.out.println(i);

// Output // Yuhu // Tata // Yuhu // Yuhu // 3

Циклы

Последнее обновление: 01.11.2018

Вопрос 1

В стране XYZ население равно 10 миллионов человек. Рождаемость составляет 14 человек на 1000 человек, смертность — 8 человек

Рассчитайте, какая численность населения будет через 10 лет, принимая во внимание, что показатели рождаемости и смертности постоянны

Решение

public class Program {
  
    public static void main(String[] args) {
          
		int population = 10000000;
		int born = 14;
		int death = 8;
		int dif = born - death;
        for(int i = 1; i <= 10; i++){
			population += population * dif / 1000;
		}
		System.out.println(population);
    }
}

Упражнение 2

В стране XYZ население равно 10 миллионов человек. Рождаемость составляет 14 человек на 1000 человек, смертность — 8 человек. Каждый год рождается и умирает на 1 человек, меньше чем в предыдущий год. Рассчитайте, какая численность населения будет через 10 лет, учитывая, что рождаемость не может быть меньше 7 человек на 1000 человек, а смертностность не может быть меньше 6 человек на 1000 человек.

Решение

import java.util.Scanner;

public class Program {
  
    public static void main(String[] args) {
          
		int population = 10000000;
		int born = 14;
		int death = 8;
        for(int i = 1; i <= 10; i++){
			if (born > 7) born -= 1;
			if	(death > 6) death -=1;
			population += population * (born - death) / 1000;
		}
		System.out.println(population);
    }
}

Упражнение 3

За каждый месяц банк начисляет к сумме вклада 7% от суммы. Напишите консольную программу, в которую пользователь вводит сумму вклада и количество месяцев. А банк вычисляет конечную сумму вклада с учетом начисления процентов за каждый месяц.

Для вычисления суммы с учетом процентов используйте цикл for. Пусть сумма вклада будет представлять тип float.

Пример работы программы:

Введите сумму вклада: 100
Введите срок вклада в месяцах: 1
После 1 месяцев сумма вклада составит 107,000000

Решение

import java.util.Scanner;

public class Program {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        System.out.print("Введите сумму вклада: ");
        float sum = in.nextFloat();
        System.out.print("Введите срок вклада в месяцах: ");
        int period = in.nextInt();

        for(int i = 1; i <= period; i++){
            sum += sum * 0.07;
        }
        System.out.printf("После %d месяцев сумма вклада составит %f", period, sum);
    }
}

Упражнение 4

Перепишите предыдущую программу, только вместо цикла for используйте цикл while.

Решение

import java.util.Scanner;

public class Program {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        System.out.print("Введите сумму вклада: ");
        float sum = in.nextFloat();
        System.out.print("Введите срок вклада в месяцах: ");
        int period = in.nextInt();
        int i = period;

        while (i > 0){
            sum += sum * 0.07;
            i--;
        }
        System.out.printf("После %d месяцев сумма вклада составит %f", period, sum);
    }
}

Упражнение 5

Напишите программу, которая выводит на консоль таблицу умножения

Пример работы программы:

1	2	3	4	5	6	7	8	9	
2	4	6	8	10	12	14	16	18	
3	6	9	12	15	18	21	24	27	
4	8	12	16	20	24	28	32	36	
5	10	15	20	25	30	35	40	45	
6	12	18	24	30	36	42	48	54	
7	14	21	28	35	42	49	56	63	
8	16	24	32	40	48	56	64	72	
9	18	27	36	45	54	63	72	81	

Решение

import java.util.Scanner;

public class Program {

    public static void main(String[] args) {

        for (int i = 1; i < 10; i++) {
            for (int j = 1; j < 10; j++) {
                System.out.printf("%d\t", i * j);
            }
            System.out.println();
        }
    }
}

Упражнение 6

В цикле программа просит у пользователя ввести два числа и выводит результат их умножения.

После вывода результата умножения программа спрашивает, надо ли завершить выполнение. И если пользователь введет число 1, то программа завершает цикл. Если введено любое другое число, то программа продолжает спрашивать у пользователя два числа и умножать их.

Решение

import java.util.Scanner;

public class Program {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        int n = 0;
        do
        {
            System.out.println("Введите первое число: ");
            int num1 = in.nextInt();
            System.out.println("Введите второе число: ");
            int num2 = in.nextInt();
            System.out.printf("%d * %d = %d \n", num1, num2, num1 * num2);

            System.out.println("Для выхода из программы нажмите цифру 1, для подолжения любую другую цифру");
            n = in.nextInt();
        }
        while(n!=1);
    }
}

Назад


С этим читают